iOS Build Settings Architectures

這次拿到一個需要二次開發的項目,案主合作的廠商有開發一個 Framework 再一次封裝了 Apple 相關的 API.

不過拿到以後卻沒有辦法很順利的 build 到手機上並執行,這過程會跳出一些錯誤。

比如在模擬器上執行的時候會跳出:

又比如嘗試在 iPhone 7 Plus 上執行的時候會跳出:

可以通過在 Build Settings 中去設定 Architectures 來編譯一份設備可以跑的檔案。


Build Settings Architecture

Architectures

指定工程支持指令集的集合,設置多個 Architecture 則會在生成的包中包含多個指令集的 code.

Valid Architectures

Architectures 和 Valid Architectures 的交集會確定最終數據包中包含的指令集。

Build Active Architecture Only

是否只針對當前連接設備所支持的指令集編譯,默認 Debug 為 YES, Release 為 NO.


ARM 處理器指令集

蘋果 A7 處理器支持兩個不同的指令集,32位 ARM 指令集(armv6 | armv7 | armv7s),64位 ARM 指令集 (arm64)

Mac 處理器指令集(i386 | x86_64)其中 i386 是針對 intel 通用微處理器 32位架構的,x86_64 是針對 x86 架構的 64位處理器。

使用 iOS 模擬器的時候會用到 i386 | x86_64 的指令集,因為 Macbook 用的是 Intel 的處理器。

iOS 設備指令集

  • ARMv8/ARM64 – iPhone 5s ~ iPhone X, iPad Air ~ iPad 5th
  • ARMv7s: iPhone 5/5c, iPad 4th
  • ARMv7: iPhone 3GS~4s, iPad 1st ~ iPad 3rd

 


Reference

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *