项目开发的时候遇到的Undefined symbols for architecture 64问题,最后也是解决。总结下使用到的方法
。
1.如果是导入第三方sdk导致的,先查看是否将第三方要求的库是否完全导入完整。如果有.a文件在拖入项目中后查看.a文件是否已经引入。因为使用的cordova平台,在插件中导入库的时候并没有将库添加到
但是引入的时候项目中存在.a
最后手动将.a文件导入
项目成功运行。
结合网上其他解决方案在此一并展示出来
2.库本身不支持arm64架构
验证方法为控制台cd到库所在文件输入-info xxxx.a(库名)可以查看库支持的cpu架构
现在基本都支持arm64所以这种情况很少。
3.如果真的不支持arm64
旧一些的帖子中建议通过设置
更改编译设置来去掉对arm64位的要求来使得项目运行,这样做是可以让项目运行,但是上线就需要注意了。苹果不是正在封杀32位么,苹果要求64位。如果是测试的话只需要去掉最后valid architectures中的arm64就可。编译时是否生成arm64、armv7、armv7s取决于valid architectures和additional SDKs中选项的交集。
4.还有一些其他情况并没有一一验证,这个帖子总结的不错。