iPhone CPU架構

Crassus發表於2018-12-13

前言

armv7,armv7s,arm64,i386,x86_64 這些都代表什麼?在Xcode中如何選擇?

介紹

  • armv7|armv7s|arm64|arm64e都是ARM處理器的指令集
  • i386|x86_64 是Mac處理器的指令集
指令集對應的機型:
2018 A12晶片arm64e : iphone XS、 iphone XS Max、 iphoneXR
2017 A11晶片arm64: iPhone 8, iPhone 8 Plus, and iPhone X
2016 A10晶片arm64:iPhone 7 , 7 Plus, iPad (2018)
2015 A9晶片arm64: iPhone 6S , 6S Plus 
2014 A8晶片arm64: iPhone 6 , iPhone 6 Plus
2013 A7晶片arm64: iPhone 5S
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4

模擬器32位處理器測試需要i386架構,
模擬器64位處理器測試需要x86_64架構,
真機32位處理器需要armv7,或者armv7s架構,
真機64位處理器需要arm64架構。
複製程式碼

xcode編譯生成armv7、arm64、i386、x86_64的target

i386選擇iPhone5以下的模擬器編譯即可
x86_64選擇iPhone5s以上的模擬器編譯即可
armv7、arm64選擇Generic iOS Device會自動生成真機

將3個執行檔案進行合併命令以及檢視架構資訊

lipo -create YstenEngineKit_i386 YstenEngineKit_r YstenEngineKit_x86 -output YstenEngineKit
// 合併結束檢視架構資訊
lipo -info YstenEngineKit
~ Architectures in the fat file: YstenEngineKit are: i386 x86_64 armv7 arm64
複製程式碼

相關文章