Undefined symbols for architecture arm64
解决问题之前,先了解清晰涉及到的知识点:
iOS支持的指令集包含:armv6、armv7、armv7s、arm64,在项目TARGETS---->Build Settings--->Architecturs 可以修改对应的指令集,目前Standard Architectures(arm64, armv7)
XCode中可设置:
1、Architectures将制定项目将支持哪些指令集
2、Build Active Architecture Only 用于设置是否只编译当前使用的设备对应的arm指令集,当该选项设置成YES时,具体编译的指令集取局于当前的设备支持的armv指令集,比如:Architectures 设置为 arm64,armv7。如果当前设备只支持armv7,则只会生成armv7指令集的二进制包
当了解了以上原理后,面对Undefined symbols for architecture arm64 类似的问题就迎刃而解啦。
解决方案一:
可以打开终端借助“lipo - info 静态库名称.a”命令来查看出现问题的静态库支持的指令集
lipo -info libLocalShopping.a
然后根据输出可知支持哪些指令集,然后再去下载对应的指令集静态库
解决方案二:
如遇到类似下图中的错误:
error
优先去查看是否是由于缺失import头文件,导致;