使用一個第三方SDK打包時報invalid bitcode signature(調(diào)試時沒有問題)。

從報錯中發(fā)現(xiàn)有個armv7。所以聯(lián)想到是不是第三方SDK不支持armv7的關(guān)系。將Build Setting中的armv7去掉后打包居然成功了。

雖然問題解決了。但是有兩個疑問,
1、為什么調(diào)試時沒有問題,打包有問題?
? ? 答:在Build Setting的Architectures 中的“Build Active Architecture Only” ? ?Debug是YES,Release是NO。
YES的話Build Setting->Valid Architetures設(shè)置成arm64,armv7 , armv7s同時支持,也只會編譯對應(yīng)指令集的包;若選擇NO,則編譯器會整合兩個指令集到一起,此時的包比較大,但是能在iPhone5上使用armv7s的優(yōu)化,同時也能適配老的設(shè)備。一般都是Debug時“Build Active Architecture Only”選擇YES,用當(dāng)前的架構(gòu)看代碼邏輯是否有問題;而在Release時選擇NO,來適配不同的設(shè)備
2、將armv7去掉后會有什么影響?
????答:對于iOS設(shè)備來說iOS的指令集有armv6、armv7、armv7s、arm64這樣四種,不同型號的iOS設(shè)備使用不同的指令集,下面是各自的區(qū)別:
armv7設(shè)備:iPhone 3GS, iPhone 4, iPhone 4S
? ? ? ? ? ? ? ? ? ? ? ?iPad , iPad 2等。
armv7s設(shè)備:iPhone 5,iPhone 5C
? ??????????????????????iPad 4等
arm64:????????iPhone 5S, iPhone 6,iPhone 6Plus
????????????????????????iPad Air, Retina iPad Mini等