在做靜態庫的時候以及引用靜態庫的時候經常會遇到一些關於真機模擬器不通用的情況,會報錯找不到相應庫導致編譯失敗,
這里簡單記錄一下各種設備支持的架構。
iOS測試分為模擬器測試和真機測試,處理器分為32位處理器,和64位處理器,
模擬器32位處理器測試需要i386架構,(iphone5,iphone5s以下的模擬器)
模擬器64位處理器測試需要x86_64架構,(iphone6以上的模擬器)
真機32位處理器需要armv7,或者armv7s架構,(iphone4真機/armv7, ipnone5,iphone5s真機/armv7s)
真機64位處理器需要arm64架構。(iphone6,iphone6p以上的真機)
project -> target -> building setting -> Arhitectures 設置
debug屬性設置為no的時候,會編譯支持所有架構的版本,編譯的速度會變慢,設置為yes 的時候,只編譯當前的architecture版本,編譯速度快。
一般情況下,debug 設置為yes,release為no,這樣發行版本能適應不同設備。
用到的命令行:
靜態庫.a支持信息:
lipo -info .a文件
兩個靜態庫合並:
lipo -create 文件1 文件2 -output /Users/sunjianfei/Desktop/libPrint.a