簡介:
- armv7|armv7s|arm64都是ARM處理器的指令集
- i386|x86_64 是Mac處理器的指令集
目前iOS的ARM處理器指令集及其支持的設(shè)備:
- armv6
iPhone
iPhone2
iPhone3G
第一代和第二代iPod Touch
- armv7
iPhone 3GS
iPhone4
iPhone4S
iPad, iPad2, iPad3(The New iPad), iPad mini
iPod Touch 3G, iPod Touch 4
- armv7s
iPhone5
iPhone5C
iPad4(iPad with Retina Display)
- arm64
iPhone5S以上
iPad Air, iPad mini2(iPad mini with Retina Display)
Mac處理器的指令集:
- i386:
iPhone4s~5
- x86_64:
iPhone5s~6plus
詳解:
i386是針對(duì)intel通用微處理器32位處理器
x86_64是針對(duì)x86架構(gòu)的64位處理器
模擬器32位處理器測(cè)試需要i386架構(gòu)叠赦,
模擬器64位處理器測(cè)試需要x86_64架構(gòu)猜憎,
真機(jī)32位處理器需要armv7,或者armv7s架構(gòu)尉尾,
真機(jī)64位處理器需要arm64架構(gòu)蚂子。
Xcode中指令集相關(guān)選項(xiàng)(Build Setting中)
- Architectures
指定工程被編譯成可支持哪些指令集類型,而支持的指令集越多斥扛,就會(huì)編譯出包含多個(gè)指令集代碼的數(shù)據(jù)包入问,對(duì)應(yīng)生成二進(jìn)制包就越大,也就是ipa包會(huì)變大稀颁。 - Valid Architectures
限制可能被支持的指令集的范圍芬失,也就是Xcode編譯出來的二進(jìn)制包類型最終從這些類型產(chǎn)生,而編譯出哪種指令集的包峻村,將由Architectures與Valid Architectures(因此這個(gè)不能為空)的交集來確定 - Build Active Architecture Only
指定是否只對(duì)當(dāng)前連接設(shè)備所支持的指令集編譯當(dāng)其值設(shè)置為YES,這個(gè)屬性設(shè)置為yes锡凝,是為了debug的時(shí)候編譯速度更快粘昨,它只編譯當(dāng)前的architecture版本,而設(shè)置為no時(shí)窜锯,會(huì)編譯所有的版本张肾。 編譯出的版本是向下兼容的,連接的設(shè)備的指令集匹配是由高到低(arm64 > armv7s > armv7)依次匹配的锚扎。
參考延伸:
xcode armv6 armv7 armv7s arm64
armv6, armv7, armv7s, arm64 的區(qū)別
Apple移動(dòng)設(shè)備處理器指令集 armv6吞瞪、armv7、armv7s及arm64
iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么
iOS開發(fā)~制作同時(shí)支持armv7,armv7s,arm64,i386,x86_64的靜態(tài)庫.a