目录
前言
1. Architectures
Architectures
- 各字段说明
Architectures
指定工程将被编译成支持哪些指令集。
支持指令集是通过编译生成对应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的ipa包很大。
Base SDK
指定编译项目所使用的SDK(API)
Build Active Architectures Only
设置是否只编译当前连接使用的设备对应的arm指令集
建议:Debug模式设成YES,Release模式设成NO
Supported Platforms
指定项目可在哪些平台运行
Valid Architectures
指定可能支持的指令集,
该列表和Architectures列表的交集,将是Xcode最终生成二进制包所支持的指令集
- 指令集说明
ARM处理器
几乎所有手机处理器都基于ARM(体积小、低功耗、低成本、高性能)。
ARM处理器指令集有 armv6、armv7、armv7s、arm64
模拟器
32位处理器测试需要i386架构,64位处理器测试需要x86_64架构
真机
32位处理器需要armv7,或者armv7s架构,64位处理器需要arm64架构。
不同型号的iOS设备使用不同的指令集
/*
指令集是向下兼容的。
比如,armv7s指令集的设备,可以兼容运行使用armv7、armv6编译的程序。
只编译了arm64版本,项目是不可能跑在iPhone5上面的。
调用了一个只支持arm64的第三方静态库,而项目需要支持armv7和armv7s,这个时候导入这个第三方库编译就会报错。
*/
armv6
iPhone、iPhone2、iPhone 3G
iPod 1G、iPod 2G
armv7
iPhone 3GS、iPhone 4、iPhone 4s
iPod 3G、iPod 4G、iPod 5G
iPad、iPad 2、iPad 3、iPad Mini
armv7s
iPhone 5、iPhone 5C
iPad 4
arm64
iPhone 5S iPhone 6 iPhone 6Plus
iPad Air, Retina iPad Mini(iPad mini2)
ios模拟器
ios模拟器中没有arm指令集,使用的是Mac的指令集(i386 或 x86_64)
i386 :32位处理器。
x86_64 :64位处理器。
i386
iPhone4s~5
x86_64
iPhone5s及以上机型
待续。。。