前兩天運營部門提出一個問題:為什么我們的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也可以正常下載……
兼容性.png