iPhone CPU架构

5,223 阅读1分钟

前言

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