Reputation: 488
Steps I followed:
I have downloaded the Aviary SDK 4.0.1 from https://developers.aviary.com/docs/ios
I Created an iOS binding Project.
Renamed the AviarySDK file to AviarySDK.a
Added this file to the binding project.
Added the AviarySDKResources.bundle to this project.
Now as per the documentation for Binding Projects (http://docs.xamarin.com/guides/ios/advanced_topics/binding_objective-c/binding_walkthrough/offline.pdf), I tried to generate the ApiDefinition.cs in ObjectiveSharpie, by selecting header files from the path "AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/"
This generates an error:
In file included from /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFInAppPurchaseManager.h:8: /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:17:8: error: unknown type name 'NSString' static NSString *const kAFProductEffectsGrunge = @"com.aviary.effectpack.01"; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:22:8: error: unknown type name 'NSString' static NSString *const kAFProductEffectsNostalgia = @"com.aviary.effectpack.02"; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:27:8: error: unknown type name 'NSString' static NSString *const kAFProductEffectsViewfinder = @"com.aviary.effectpack.03"; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:37:35: error: cannot find interface declaration for 'NSObject', superclass of 'AFPhotoEditorProduct' @interface AFPhotoEditorProduct : NSObject ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:44:39: error: unknown type name 'NSString' @property (nonatomic, copy, readonly) NSString *productName; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:44:1: error: property with 'copy' attribute must be of object type @property (nonatomic, copy, readonly) NSString *productName; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:52:39: error: unknown type name 'NSString' @property (nonatomic, copy, readonly) NSString *productDescription; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:52:1: error: property with 'copy' attribute must be of object type @property (nonatomic, copy, readonly) NSString *productDescription; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:64:39: error: unknown type name 'NSString' @property (nonatomic, copy, readonly) NSString *internalProductIdentifier; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFPhotoEditorProduct.h:64:1: error: property with 'copy' attribute must be of object type @property (nonatomic, copy, readonly) NSString *internalProductIdentifier; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFInAppPurchaseManager.h:16:8: error: unknown type name 'NSString' extern NSString *const kAFPhotoEditorEffectsIAPEnabledKey; ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFInAppPurchaseManager.h:21:43: error: cannot find protocol declaration for 'NSObject' @protocol AFInAppPurchaseManagerDelegate ^ /Users/ramnathiyer/Documents/Projects/Aviary-iOS-SDK/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Versions/A/Headers/AFInAppPurchaseManager.h:40:4: error: expected a type
Please can anyone help me?
Upvotes: 1
Views: 1559
Reputation: 2882
The trickiest step in getting Objective Sharpie to cooperate with the Aviary framework is to add an "extra clang command line argument" [1] on the first dialog window of Objective Sharpie. This extra argument allows clang
to find and import the various Aviary header files as needed.
[1] -F /path/to/AviarySDK-4.0.1/AviarySDK/
On the "Select Header Files" screen, you can then select just the "main" AviarySDK.h
header file [2], and leave "Follow #include and #import directives" ON.
[2] /path/to/AviarySDK-4.0.1/AviarySDK/AviarySDK.framework/Headers/AviarySDK.h
Upvotes: 3