Skip to content

Commit

Permalink
AppleTV version
Browse files Browse the repository at this point in the history
  • Loading branch information
priore committed Dec 31, 2015
1 parent ba3c984 commit ad81120
Show file tree
Hide file tree
Showing 55 changed files with 1,431 additions and 44 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
1.25, Dic 31, 2015
- added a supported version for Apple TV.
- fixes license message on simulator.

1.24, Oct 1, 2015
- added new method that return a formatted dictionary for a sub-child with attributes.
- added new property to define attributes for the soap action tag.
Expand Down
27 changes: 19 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
**SOAPEngine**
================

This generic [SOAP](http://www.wikipedia.org/wiki/SOAP) client allows you to access web services using a your [iOS](http://www.wikipedia.org/wiki/IOS) app and [Mac OS X](http://www.wikipedia.org/wiki/OS_X) app.
This generic [SOAP](http://www.wikipedia.org/wiki/SOAP) client allows you to access web services using a your [iOS](http://www.wikipedia.org/wiki/IOS) app, [Mac OS X](http://www.wikipedia.org/wiki/OS_X) app and [AppleTv](http://www.apple.com/tv/) app.

With this Framework you can create [iPhone](http://www.wikipedia.org/wiki/IPhone), [iPad](http://www.wikipedia.org/wiki/IPad) and [Mac OS X](http://www.wikipedia.org/wiki/OS_X) apps that supports [SOAP](http://www.wikipedia.org/wiki/SOAP) Client Protocol. This framework able executes methods at remote web services with [SOAP](http://www.wikipedia.org/wiki/SOAP) standard protocol.
With this Framework you can create [iPhone](http://www.wikipedia.org/wiki/IPhone), [iPad](http://www.wikipedia.org/wiki/IPad), [Mac OS X](http://www.wikipedia.org/wiki/OS_X) and [AppleTv](http://www.apple.com/tv/) apps that supports [SOAP](http://www.wikipedia.org/wiki/SOAP) Client Protocol. This framework able executes methods at remote web services with [SOAP](http://www.wikipedia.org/wiki/SOAP) standard protocol.

## Features
---
Expand Down Expand Up @@ -37,6 +37,15 @@ With this Framework you can create [iPhone](http://www.wikipedia.org/wiki/IPhone
* Cocoa.framework
* libxml2.dylib

## Requirements for [AppleTv](http://www.apple.com/tv/)
---
* [iOS](http://www.wikipedia.org/wiki/IOS) 9.0, and later
* [XCode](http://www.wikipedia.org/wiki/Xcode) 7.1 or later
* Security.framework
* Foundation.framework
* UIKit.framework
* libxml2.dylib

## Limitations
---
* for [WCF](http://www.wikipedia.org/wiki/Windows_Communication_Foundation) services, only supports basic http bindings ([basicHttpBinding](https://msdn.microsoft.com/library/ms731361.aspx)).
Expand Down Expand Up @@ -103,9 +112,8 @@ with [**Block programming**](https://developer.apple.com/library/ios/documentati
[soap requestURL:@"http://www.my-web.com/my-service.svc"
soapAction:@"http://www.my-web.com/my-interface/my-method"
value:myObject
complete:^(NSInteger statusCode, NSString *stringXML) {
NSDictionary *result = [soap dictionaryValue];
NSLog(@"%@", result);
completeWithDictionary:^(NSInteger statusCode, NSDictionary *dict) {
NSLog(@"%@", dict);
} failWithError:^(NSError *error) {
NSLog(@"%@", error);
}];
Expand Down Expand Up @@ -482,10 +490,13 @@ this is not optimized, very slow, instead you can use the optimization below :
2. add `/usr/include/libxml2` in Build Settings --> Header Search Paths.
![Header Search Paths](/screen/headersearchpaths.png)
3. SOAPEngine64.framework (for iOS apps) or SOAPEngineOSX.framework (for Mac OS X apps).
3. add SOAPEngine Framework
* SOAPEngine64.framework for iOS.
* SOAPEngineOSX.framework for Mac OS X.
* SOAPEngineTV.framework for AppleTV.
4. add Security.framework.
5. add Accounts.framework.
6. add AppKit.framework (only for Mac OS X apps, not required for iOS apps).
5. add Accounts.framework (not for AppleTv).
6. add AppKit.framework (only for Mac OS X).
![Frameworks](/screen/frameworks.png)
7. in your class import `<SOAPEngine64/SOAPEngine.h>` or `<SOAPEngineOSX/SOAPEngine.h>`.
Expand Down
329 changes: 329 additions & 0 deletions SOAPEngine AppleTV/SOAPEngine AppleTV.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,329 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {

/* Begin PBXBuildFile section */
9FBD4FF61C3573F600742288 /* SOAPEngineTV.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD4FF51C3573F600742288 /* SOAPEngineTV.framework */; };
9FFC00811C0BB7050055A7ED /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FFC00801C0BB7050055A7ED /* main.m */; };
9FFC00841C0BB7050055A7ED /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FFC00831C0BB7050055A7ED /* AppDelegate.m */; };
9FFC00871C0BB7050055A7ED /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FFC00861C0BB7050055A7ED /* ViewController.m */; };
9FFC008A1C0BB7060055A7ED /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9FFC00881C0BB7060055A7ED /* Main.storyboard */; };
9FFC008C1C0BB7060055A7ED /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9FFC008B1C0BB7060055A7ED /* Assets.xcassets */; };
9FFC00961C0BB7660055A7ED /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FFC00951C0BB7660055A7ED /* Security.framework */; };
9FFC00981C0BB76F0055A7ED /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FFC00971C0BB76F0055A7ED /* UIKit.framework */; };
9FFC009A1C0BB7760055A7ED /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FFC00991C0BB7760055A7ED /* Foundation.framework */; };
9FFC009C1C0BB77B0055A7ED /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FFC009B1C0BB77B0055A7ED /* CoreGraphics.framework */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
9FBD4FF51C3573F600742288 /* SOAPEngineTV.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SOAPEngineTV.framework; path = ../SOAPEngineTV.framework; sourceTree = "<group>"; };
9FFC007C1C0BB7050055A7ED /* SOAPEngine AppleTV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SOAPEngine AppleTV.app"; sourceTree = BUILT_PRODUCTS_DIR; };
9FFC00801C0BB7050055A7ED /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
9FFC00821C0BB7050055A7ED /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
9FFC00831C0BB7050055A7ED /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
9FFC00851C0BB7050055A7ED /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
9FFC00861C0BB7050055A7ED /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
9FFC00891C0BB7060055A7ED /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
9FFC008B1C0BB7060055A7ED /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
9FFC008D1C0BB7060055A7ED /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9FFC00951C0BB7660055A7ED /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
9FFC00971C0BB76F0055A7ED /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
9FFC00991C0BB7760055A7ED /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
9FFC009B1C0BB77B0055A7ED /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
9FFC00791C0BB7050055A7ED /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9FFC009C1C0BB77B0055A7ED /* CoreGraphics.framework in Frameworks */,
9FFC009A1C0BB7760055A7ED /* Foundation.framework in Frameworks */,
9FBD4FF61C3573F600742288 /* SOAPEngineTV.framework in Frameworks */,
9FFC00981C0BB76F0055A7ED /* UIKit.framework in Frameworks */,
9FFC00961C0BB7660055A7ED /* Security.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
9FFC00731C0BB7050055A7ED = {
isa = PBXGroup;
children = (
9FFC007E1C0BB7050055A7ED /* SOAPEngine AppleTV */,
9FFC009D1C0BB78B0055A7ED /* Frameworks */,
9FFC007D1C0BB7050055A7ED /* Products */,
);
sourceTree = "<group>";
};
9FFC007D1C0BB7050055A7ED /* Products */ = {
isa = PBXGroup;
children = (
9FFC007C1C0BB7050055A7ED /* SOAPEngine AppleTV.app */,
);
name = Products;
sourceTree = "<group>";
};
9FFC007E1C0BB7050055A7ED /* SOAPEngine AppleTV */ = {
isa = PBXGroup;
children = (
9FFC00821C0BB7050055A7ED /* AppDelegate.h */,
9FFC00831C0BB7050055A7ED /* AppDelegate.m */,
9FFC00851C0BB7050055A7ED /* ViewController.h */,
9FFC00861C0BB7050055A7ED /* ViewController.m */,
9FFC00881C0BB7060055A7ED /* Main.storyboard */,
9FFC008B1C0BB7060055A7ED /* Assets.xcassets */,
9FFC008D1C0BB7060055A7ED /* Info.plist */,
9FFC007F1C0BB7050055A7ED /* Supporting Files */,
);
path = "SOAPEngine AppleTV";
sourceTree = "<group>";
};
9FFC007F1C0BB7050055A7ED /* Supporting Files */ = {
isa = PBXGroup;
children = (
9FFC00801C0BB7050055A7ED /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
9FFC009D1C0BB78B0055A7ED /* Frameworks */ = {
isa = PBXGroup;
children = (
9FBD4FF51C3573F600742288 /* SOAPEngineTV.framework */,
9FFC009B1C0BB77B0055A7ED /* CoreGraphics.framework */,
9FFC00991C0BB7760055A7ED /* Foundation.framework */,
9FFC00971C0BB76F0055A7ED /* UIKit.framework */,
9FFC00951C0BB7660055A7ED /* Security.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
9FFC007B1C0BB7050055A7ED /* SOAPEngine AppleTV */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9FFC00901C0BB7060055A7ED /* Build configuration list for PBXNativeTarget "SOAPEngine AppleTV" */;
buildPhases = (
9FFC00781C0BB7050055A7ED /* Sources */,
9FFC00791C0BB7050055A7ED /* Frameworks */,
9FFC007A1C0BB7050055A7ED /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "SOAPEngine AppleTV";
productName = "SOAPEngine AppleTV";
productReference = 9FFC007C1C0BB7050055A7ED /* SOAPEngine AppleTV.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
9FFC00741C0BB7050055A7ED /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0710;
ORGANIZATIONNAME = "Danilo Priore";
TargetAttributes = {
9FFC007B1C0BB7050055A7ED = {
CreatedOnToolsVersion = 7.1.1;
DevelopmentTeam = JQRB98RUML;
};
};
};
buildConfigurationList = 9FFC00771C0BB7050055A7ED /* Build configuration list for PBXProject "SOAPEngine AppleTV" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 9FFC00731C0BB7050055A7ED;
productRefGroup = 9FFC007D1C0BB7050055A7ED /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
9FFC007B1C0BB7050055A7ED /* SOAPEngine AppleTV */,
);
};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
9FFC007A1C0BB7050055A7ED /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9FFC008C1C0BB7060055A7ED /* Assets.xcassets in Resources */,
9FFC008A1C0BB7060055A7ED /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
9FFC00781C0BB7050055A7ED /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9FFC00871C0BB7050055A7ED /* ViewController.m in Sources */,
9FFC00841C0BB7050055A7ED /* AppDelegate.m in Sources */,
9FFC00811C0BB7050055A7ED /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
9FFC00881C0BB7060055A7ED /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
9FFC00891C0BB7060055A7ED /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
9FFC008E1C0BB7060055A7ED /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = appletvos;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
9FFC008F1C0BB7060055A7ED /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = appletvos;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
9FFC00911C0BB7060055A7ED /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
FRAMEWORK_SEARCH_PATHS = ../;
INFOPLIST_FILE = "SOAPEngine AppleTV/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = "-lxml2";
PRODUCT_BUNDLE_IDENTIFIER = "com.prioregroup.soapengine-sample";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
9FFC00921C0BB7060055A7ED /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
FRAMEWORK_SEARCH_PATHS = ../;
INFOPLIST_FILE = "SOAPEngine AppleTV/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = "-lxml2";
PRODUCT_BUNDLE_IDENTIFIER = "com.prioregroup.soapengine-sample";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
9FFC00771C0BB7050055A7ED /* Build configuration list for PBXProject "SOAPEngine AppleTV" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9FFC008E1C0BB7060055A7ED /* Debug */,
9FFC008F1C0BB7060055A7ED /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9FFC00901C0BB7060055A7ED /* Build configuration list for PBXNativeTarget "SOAPEngine AppleTV" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9FFC00911C0BB7060055A7ED /* Debug */,
9FFC00921C0BB7060055A7ED /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 9FFC00741C0BB7050055A7ED /* Project object */;
}
Loading

0 comments on commit ad81120

Please sign in to comment.