iOS CPU架構(ARM指令集)

armv6、armv7、armv7s、arm64都是ARM處理器的指令集,所有指令集原則上都是向下兼容的。如 iPhone 4s的CPU默認指令集為armv7指令集,但它可以同時也兼容armv6的指令集,只是在使用armv6的時候無法充分發揮其性能(無法發揮armv7指令集中得新特性)。

模擬器:

4s-5: i386
5s-6s Plus: x86_64

真機:

armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第一代)、iPod Touch(第二代)
armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2
armv7s: iPhone 5、iPhone 5c (靜態庫只要支持了armv7,就可以在armv7s的架構上運行)
arm64(注:無armv64): iPhone 5s、iPhone 6、iPhone 6 Plus、iPhone 7、iPhone 7PlusPlus、iPad Air、iPad Air2、iPad mini2、iPad mini3

Build Active Architecture Only

這個屬性設置為YES時,只編譯當前的architecture版本(常用于Debug,這樣編譯速度更快);
設置為NO時,會編譯所有的版本(常用于Release)。

常見Bug:

warning: ignoring file /Users/admin/Desktop/xxxxxxDemo/xxx.framework/xxx, file was built for arm64 which is not the architecture being linked (armv7): /Users/admin/Desktop/xxxxxxDemo/xxx.framework/xxx

大概意思就是:制作Framework時選擇的是arm64指令集,不支持在armv7指令集的設備上運行。
解決辦法:1、修改framework使其支持armv7;2、在TARGET-Build Settings-Valid Architectures中,將armv7暫時去掉。

參考文檔:
1、關于iOS設備處理器的指令集
2、iOS CPU架構(ARM指令集)
3、iPhone CPU指令集架構

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

推薦閱讀更多精彩內容