xcode 打包会出现 invalid bitcode signature错误

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

xcode 打包会出现 invalid bitcode signature错误_第1张图片
image

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

image

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

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等

转载:https://www.jianshu.com/p/2199813fef3d

你可能感兴趣的:(xcode 打包会出现 invalid bitcode signature错误)