之前每個(gè)版本的ipa包打出來都才20M出頭,后來不知道從哪個(gè)版本起打的包每次都將近40M,但是工程中也沒有明顯的增加很大第三方類或者圖片、靜態(tài)文件。于是就開始了各種瘦身計(jì)劃:壓縮圖片,刪除不必要靜態(tài)庫。做了一番改動(dòng)后發(fā)現(xiàn)包只比原來小了1M多,收效甚微。后來經(jīng)過查閱資料才知道armv6 armv7 armv7s arm64引起編譯包翻倍增大的問題,于是就試了一下,果然ipa包又回到了以前的大小。這個(gè)指令集
xcode創(chuàng)建工程默認(rèn)支持的指令集有下列三種
>armv7
iPhone4
iPhone4S
>armv7s
iPhone5
iPhone5C
>arm64
iPhone5S(以上)
機(jī)器對(duì)指令集的支持是向下兼容的,因此armv7的指令集是可以運(yùn)行在iphone5S以上的,只是效率沒那么高而已~
但是由于蘋果要求必須支持arm64,因此這個(gè)架構(gòu)是必須存在的.
在xcodeTARGETS里邊Architectures:

Architecture : 指你想支持的指令集。
Valid architectures : 指即將編譯的指令集。
Build Active Architecture Only : 只是否只編譯當(dāng)前適用的指令集。
================================================
如果全部支持切不在乎包大小的話,Architecture的值選擇:armv7 armv7s arm64
如果支持5以上切包不要求則選用 armv7s ,arm64
如果支持全機(jī)型,有不想ipa包太多就選擇 armv7 , arm64
如果最小ipa的話,切拋棄5s以下,可以采用只用arm64
PS:選arm64時(shí)需要最低支持5.1.1:
1,如果想自己的app在各個(gè)機(jī)器都能夠最高效率的運(yùn)行,則需要將Build Active Architecture Only改為NO,Valid architectures選擇對(duì)應(yīng)的指令集:armv7 armv7s arm64。這個(gè)會(huì)為各個(gè)指令集編譯對(duì)應(yīng)的代碼,因此最后的 ipa體積基本翻了3倍,Release版本必須NO。
2,如果想讓app體積保持最小,則現(xiàn)階段應(yīng)該選擇Valid architectures為armv64,這樣Build Active Architecture Only選YES或NO就無所謂了
至于如何選擇,就看我們產(chǎn)品的要求了