I can't run my app only on the iOS Simulator since I updated to Aviary SDK 4.4. I can run the app on my iPhone and iPad.
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: 30 duplicate symbols for architecture x86_64
The framework and the bundle are visible in "Link binaries with Libraries" and "Bundle ressources".
The Framework search path is OK in build settings.
It looks like the Aviary framework was managed twice ?
I leave/restart Xcode, clean the app in iOS simulator, clean target and destroy DerivedData without success.
Very strange I have no problems in the real devices.
I got this problem resolved. Here is how:
Do not use #import <AviarySDK/AviarySDK.h>
, instead of that, import the classes that you're using directly. Like: #import <AviarySDK/AVYPhotoEditorController.h>
etc.
The reason I believe lies in the newly introduced AVYPhotoEditorCompatibility.h
, which is by default included in <AviarySDK/AviarySDK.h>
.
I think here is the problematic code that is using typedef
with const
typedef AVYPhotoEditorPremiumAddOn AFPhotoEditorPremiumAddOn AVY_PREMIUM_ADDON_NAMESPACE_DEPRECATED_ATTRIBUTE;
AVY_PREMIUM_ADDON_NAMESPACE_DEPRECATED_ATTRIBUTE AFPhotoEditorPremiumAddOn const AFPhotoEditorPremiumAddOnNone = AVYPhotoEditorPremiumAddOnNone;
AVY_PREMIUM_ADDON_NAMESPACE_DEPRECATED_ATTRIBUTE AFPhotoEditorPremiumAddOn const AFPhotoEditorPremiumAddOnHiRes = AVYPhotoEditorPremiumAddOnHiRes;
AVY_PREMIUM_ADDON_NAMESPACE_DEPRECATED_ATTRIBUTE AFPhotoEditorPremiumAddOn const AFPhotoEditorPremiumAddOnWhiteLabel = AVYPhotoEditorPremiumAddOnWhiteLabel;