invalid bitcode signature

使用一个第三方SDK打包时报invalid bitcode signature(调试时没有问题)。

invalid bitcode signature_第1张图片

从报错中发现有个armv7。所以联想到是不是第三方SDK不支持armv7的关系。将Build Setting中的armv7去掉后打包居然成功了。

虽然问题解决了。但是有两个疑问,

1、为什么调试时没有问题,打包有问题?

    答:在Build Setting的Architectures 中的“Build Active Architecture Only”    Debug是YES,Release是NO。

YES的话Build Setting->Valid Architetures设置成arm64,armv7 , armv7s同时支持,也只会编译对应指令集的包;若选择NO,则编译器会整合两个指令集到一起,此时的包比较大,但是能在iPhone5上使用armv7s的优化,同时也能适配老的设备。一般都是Debug时“Build Active Architecture Only”选择YES,用当前的架构看代码逻辑是否有问题;而在Release时选择NO,来适配不同的设备

2、将armv7去掉后会有什么影响?

    答:对于iOS设备来说iOS的指令集有armv6、armv7、armv7s、arm64这样四种,不同型号的iOS设备使用不同的指令集,下面是各自的区别:

armv7设备:iPhone 3GS, iPhone 4, iPhone 4S

                       iPad , iPad 2等。

armv7s设备:iPhone 5,iPhone 5C

                        iPad 4等

arm64:        iPhone 5S, iPhone 6,iPhone 6Plus

                        iPad Air, Retina iPad Mini等

你可能感兴趣的:(invalid bitcode signature)