【iOS】 Build Active Architecture Only

前兩天運營部門提出一個問題:為什么我們的APP不支持iPhone5s以下機型(我們APP最低支持系統版本8.0)?我也是一臉懵逼樣,平時都是不支持哪個系統版本的,我還是頭一次聽說不支持機型的呢!直覺告訴我問題出在armv64、armv7等系統架構上面……

我在AppStore上搜索我們的APP發現兼容性描述限制了機型!!!

兼容性.png

為什么會出現這樣的問題呢?

Build Active Architecture Only.png
  • DebugRelease屬性設置為YES時,是為了debug的時候編譯速度更快,它只編譯當前的architecture版本;
  • 當而設置為NO時,會編譯所有的版本;
  • 編譯出的版本是向下兼容的,比如你設置值為YES,用iPhone4編譯出來的是armv7版本的,iphone5也可以運行,但是armv6的設備就不能運行。
    所以,一般Debug模式可以選擇設置為YESRelease的時候要改為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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容