当前位置 : 主页 > 手机开发 > ios >

自SDK 4.4以来无法在iOS上编译Aviary

来源:互联网 收集:自由互联 发布时间:2021-06-11
自从我更新到Aviary SDK 4.4后,我无法在iOS模拟器上运行我的应用程序. 我可以在iPhone和iPad上运行该应用程序. clang: error: linker command failed with exit code 1 (use -v to see invocation)ld: 30 duplicate symb
自从我更新到Aviary SDK 4.4后,我无法在iOS模拟器上运行我的应用程序.
我可以在iPhone和iPad上运行该应用程序.

clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: 30 duplicate symbols for architecture x86_64

框架和包在“链接二进制文件库”和“捆绑包资源”中可见.

框架搜索路径在构建设置中是正常的.

看起来Aviary框架被管理了两次?

我离开/重新启动Xcode,在iOS模拟器中清理应用程序,清理目标并销毁DerivedData但没有成功.

很奇怪我在真实设备上没有问题.

我解决了这个问题.方法如下:

不要使用#import< AviarySDK / AviarySDK.h>而不是直接导入您正在使用的类.例如:#import< AviarySDK / AVYPhotoEditorController.h>等等

原因

我相信的原因在于新推出的AVYPhotoEditorCompatibility.h,它默认包含在< AviarySDK / AviarySDK.h>中.

我认为这是使用typedef和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;
网友评论