靜態庫:.a和.framework
動態庫:.dylib和.framework
靜態庫:連結時,靜態庫會被完整地複製到可執行檔案中,被多次使用舊有多份冗餘複製
動態庫:連結時,不復制,程式執行時系統動態載入到記憶體,供程式呼叫,系統只加載一次,多個程式共用
需要注意的是:專案中如果使用了自制的動態庫,不能被上傳到appstore
模擬器的架構是x86_64,真機的架構是arm64,arm7,arm7s
終端指令真機和模擬器合併.a
cd /Users/lili/Library/Developer/Xcode/DerivedData/StaticDemo-gqjycc../Build/Products/libdev
模擬器的lib資料夾所在目錄
可以藉助lipo -info 靜態庫檔案地址支援哪些平臺
lipo -info staticDemo.a
is architecture:x86_64(7),i386(5)模擬器;
真機的是are armv7 arm64(5s) armv7s(iphone5c)
合併真機和模擬器靜態庫合併為一個靜態庫
lipo -create libdev/staticDemo.a libPro/staticDemo.a -output HMTool.a
lipo -create 需要合併的靜態庫1 需要合併的靜態庫2 -output 合併之後的資料夾名稱
注意:雖然將真機和模擬器的靜態庫合併在一起之後,以後我們就不用關心當前是執行在模擬器還是真機了,但是如果在程式釋出時還是建議大家使用真機的靜態庫
靜態庫:.a和.framework
動態庫:.dylib和.framework
靜態庫:連結時,靜態庫會被完整地複製到可執行檔案中,被多次使用舊有多份冗餘複製
動態庫:連結時,不復制,程式執行時系統動態載入到記憶體,供程式呼叫,系統只加載一次,多個程式共用
需要注意的是:專案中如果使用了自制的動態庫,不能被上傳到appstore
模擬器的架構是x86_64,真機的架構是arm64,arm7,arm7s
終端指令真機和模擬器合併.a
cd /Users/lili/Library/Developer/Xcode/DerivedData/StaticDemo-gqjycc../Build/Products/libdev
模擬器的lib資料夾所在目錄
可以藉助lipo -info 靜態庫檔案地址支援哪些平臺
lipo -info staticDemo.a
is architecture:x86_64(7),i386(5)模擬器;
真機的是are armv7 arm64(5s) armv7s(iphone5c)
合併真機和模擬器靜態庫合併為一個靜態庫
lipo -create libdev/staticDemo.a libPro/staticDemo.a -output HMTool.a
lipo -create 需要合併的靜態庫1 需要合併的靜態庫2 -output 合併之後的資料夾名稱
注意:雖然將真機和模擬器的靜態庫合併在一起之後,以後我們就不用關心當前是執行在模擬器還是真機了,但是如果在程式釋出時還是建議大家使用真機的靜態庫