只为记录项目中问题。
问题描述:项目开发当中,遇到切换debug和release环境时,在模拟器出现了debug运行正常,release运行报错:
/Users/jiangtaisheng/Documents/cmusic/Bravo/Pods/WechatOpenSDK/OpenSDK1.8.7.1/libWeChatSDK.a(WechatAuthSDK.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/jiangtaisheng/Documents/cmusic/Bravo/Pods/WechatOpenSDK/OpenSDK1.8.7.1/libWeChatSDK.a' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
此时牵引出一个xcode的一个属性 “Build Active Architecture Only”
这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。而设置为no时,会编译所有的版本。
一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。
所以在release环境下,Build Active Architecture Only 为 no,他会构建所有的版本,而模拟器不支持 arm64架构 所以会出现 “libWeChatSDK.a' for architecture arm64”的报错。处理方法是:
1.在真机上跑,release 环境。
2.设置Build Active Architecture Only 属性 release也设置成Yes。就可以了。上线以后会不会有问题,未知,,需慎行。
网友评论