2016-07-24 23 views
0

我在模拟器上运行我的项目(使用配置文件,因为我要检查是否存在泄漏)。然后我得到了以下警告和错误:iOS在为模拟器设计的真实设备链接库中获取错误

ld: warning: ignoring file /Users/Caesar/Documents/developer/objective-c/BoBanTang/BoBanTang/ShareSDK/Support/PlatformSDK/QQSDK/TencentOpenAPI.framework/TencentOpenAPI, missing required architecture i386 in file /Users/Caesar/Documents/developer/objective-c/BoBanTang/BoBanTang/ShareSDK/Support/PlatformSDK/QQSDK/TencentOpenAPI.framework/TencentOpenAPI (3 slices) 
Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_QQApiInterface", referenced from: 
     objc-class-ref in BBTAppDelegate.o 
    "_OBJC_CLASS_$_TencentOAuth", referenced from: 
     objc-class-ref in BBTAppDelegate.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

但如果我只是运行它,不使用配置文件,就可以成功打造。我搜索了stackOverFlow,我知道这是因为这个库是为真实设备设计的。但是,为什么我使用这两种方法得到不同的结果来运行我的项目?我已经使用这个库一段时间了,我以前没有遇到过这个问题(也使用配置文件)。谁能告诉我为什么?提前致谢。

回答

0

假设您正在自己构建TencentOpenAPI.framework并使用工作空间,这是SO和开发论坛上其他地方讨论的已知问题。问题是单个项目不知道什么平台是由另一个项目生成的。他们只是看到磁盘上的文件并尝试使用它。当您构建分析时,框架为新选择的平台重建。

清洁和重建可能也会给你相同的结果。

+0

那么我该如何解决呢?或者我只能在真实设备上运行它? – Caesar

+0

这取决于这是你的框架还是第三方框架。如果它是你的,只需为模拟器构建它。如果来自第三方,请向他们询问适用于模拟器的版本,或者在设备上进行测试。 –

+1

事实证明,第三方刚刚更新了这个框架,所以它不再支持5以下的模拟器......我明白了,很多thx。 – Caesar

相关问题