苹果现在已经要求所有新提交审核的app,必须支持64位架构。而我们的项目准备上线了,运营方发了一堆SDK过来需要接入,在这个过程中发现,某些SDK的.a文件放入后,链接错误,诸如提示
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_CocoAnalyse", referenced from:
objc-class-ref in PlatHelper_iOS.o
这样的错误。一般来说,如果在集成前能正常,而集成后出现在这个错误,除了sdk的库本身和工程设置不相符(比如不支持64位),还有可能是因为sdk没有正确的集成(没有把.a文件加入工程,没有把sdk用到的某些iOS SDK中的framkwork加进去)
通常来说,这里的错误信息就能判断出大体是哪个sdk出了问题。但如果有些名字看不出来是哪个SDK,或者想要更有针对性的判断某个.a文件都包含有哪些架构,可以直接使用MacOS自带的otool 命令行
如 otool -hv xxx.a
命令会输出相关的信息
参考链接:
http://stackoverflow.com/questions/12001195/how-can-i-know-which-architecture-an-a-file-is-built-for
查看.a文件的架构
原文:http://blog.csdn.net/piao_polar/article/details/44221087