一寂曹、簡介
armv7,armv7s回右,arm64都是ARM處理器的指令集隆圆;
i386,x86_64 是Mac處理器的指令集楣黍;
二匾灶、設(shè)備
arm64:iPhoneX | iPhone8 |iPhone7 | iPhone7 plus | iPhone6s | iPhone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
i386是針對intel通用微處理器32位處理器
x86_64是針對x86架構(gòu)的64位處理器
模擬器32位處理器測試需要i386架構(gòu)棱烂,
模擬器64位處理器測試需要x86_64架構(gòu)租漂,
真機(jī)32位處理器需要armv7,或者armv7s架構(gòu),
真機(jī)64位處理器需要arm64架構(gòu)颊糜。
三哩治、應(yīng)用
Xcode中指令集相關(guān)選項(xiàng)(Build Setting中)
1.Architectures
指定工程被編譯成可支持哪些指令集類型,而支持的指令集越多衬鱼,就會編譯出包含多個指令集代碼的數(shù)據(jù)包业筏,對應(yīng)生成二進(jìn)制包就越大,也就是ipa包會變大鸟赫。
2.Valid Architectures
限制可能被支持的指令集的范圍蒜胖,也就是Xcode編譯出來的二進(jìn)制包類型最終從這些類型產(chǎn)生,而編譯出哪種指令集的包抛蚤,將由Architectures與Valid Architectures(因此這個不能為空)的交集來確定
3.Build Active Architecture Only
指定是否只對當(dāng)前連接設(shè)備所支持的指令集編譯
當(dāng)其值設(shè)置為YES台谢,這個屬性設(shè)置為yes,是為了debug的時候編譯速度更快岁经,它只編譯當(dāng)前的architecture版本朋沮,而設(shè)置為no時,會編譯所有的版本缀壤。 所以樊拓,一般debug的時候可以選擇設(shè)置為yes,release的時候要改為no塘慕,以適應(yīng)不同設(shè)備筋夏。