3

自从我更新到 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

框架和包在“Link binaries with Libraries”和“Bundle ressources”中可见。

框架搜索路径在构建设置中是可以的。

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

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

很奇怪,我在真实设备中没有问题。

4

1 回答 1

7

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

解决方案

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

原因

我相信的原因在于新引入AVYPhotoEditorCompatibility.h的,默认包含在<AviarySDK/AviarySDK.h>.

我认为这是使用typedefwith的有问题的代码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;
于 2014-12-30T01:24:20.137 回答