介紹
armv7|armv7s|arm64都是ARM處理器的指令集
i386|x86_64 是Mac處理器的指令集
這些指令集在那些設(shè)備中有用到呢痪蝇?
arm64: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)岗钩。
在實(shí)際開發(fā)中的選擇問題
Xcode中指令集相關(guān)選項(xiàng)(Build Setting中)
Architectures
指定工程被編譯成可支持哪些指令集類型女坑,而支持的指令集越多,就會編譯出包含多個指令集代碼的數(shù)據(jù)包幅疼,對應(yīng)生成二進(jìn)制包就越大米奸,也就是ipa包會變大。
Valid Architectures
限制可能被支持的指令集的范圍爽篷,也就是Xcode編譯出來的二進(jìn)制包類型最終從這些類型產(chǎn)生悴晰,而編譯出哪種指令集的包,將由Architectures與Valid Architectures(因此這個不能為空)的交集來確定
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è)備。