打包APP时报错 linker command failed with exit code 1 (use -v to see invocation)

转自:http://www.jianshu.com/p/df5e9c7d61f0

用的是xcode 8 在模拟器和真机时候都没有问题,但是进行Archive时,会报这样的错误:

clang: error: linker command failed with exit code 1 (use -v to see invocation)

最终找到原因:

在Xcode 7中,我们新建一个iOS程序时,bitcode选项默认是设置为YES的。我们可以在”Build Settings”->”Enable Bitcode”选项中看到这个设置。
不过,我们现在需要考虑的是三个平台:iOS,Mac OS,watchOS。
对于iOS,bitcode是可选的;对于watchOS,bitcode是必须的;而Mac OS是不支持bitcode。
所以,如果我们的工程需要支持bitcode,则必要要求所有引入的第三方库都支持bitcode。

根据苹果官方文档解释:

Bitcode is an intermediate representation of a compiled program. 
Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store.
Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

说的是bitcode是被编译程序的一种中间形式的代码。
包含bitcode配置的程序将会在App store上被编译和链接。
bitcode允许苹果在后期重新优化程序的二进制文件,而不需要重新提交一个新的版本到App store上。
也就是说,当提交程序到App store上时,Xcode会将程序编译为一个中间表现形式(bitcode)。
然后App store会再将这个botcode编译为可执行的64位或32位程序。

解决方案

Build Settings中,把Enable Bitcode设置为NO


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值