前两天运营部门提出一个问题:为什么我们的APP不支持iPhone5s以下机型(我们APP最低支持系统版本8.0)?我也是一脸懵逼样,平时都是不支持哪个系统版本的,我还是头一次听说不支持机型的呢!直觉告诉我问题出在armv64、armv7等系统架构上面……
我在AppStore上搜索我们的APP发现兼容性描述限制了机型!!!
兼容性.png
为什么会出现这样的问题呢?
Build Active Architecture Only.png
- 当Debug和Release属性设置为YES时,是为了debug的时候编译速度更快,它只编译当前的architecture版本;
- 当而设置为NO时,会编译所有的版本;
- 编译出的版本是向下兼容的,比如你设置值为YES,用iPhone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。
所以,一般Debug模式可以选择设置为YES,Release的时候要改为NO,以适应不同设备。
目前为止Apple移动设备默认指令集:
- armv6:iPhone2G/3G、iPod 1G/2G
- armv7:iPhone 3GS/4/4s、iPod 3G/4G、iPad 1G/2G/3G、iPad mini
- armv7s:iPhone5、iPhone5c、iPad4
-
arm64:iPhone5s及以后、iPad Air、iPad mini2
(Armv6、armv7、armv7s、arm64都是arm处理器的指令集,所有指令集原则上都是向下兼容的。需要注意的是iOS模拟器没有运行arm指令集,编译运行的是x86指令集,所以,只有在iOS设备上,才会执行设备对应的arm指令集。)
更改设置并发布版本后发现AppStore兼容性描述正常,iPhone5也可以正常下载……
网友评论