iOS合併靜態庫

2021-06-11 01:05:40 字數 539 閱讀 4240

對ios專案來說,靜態庫對於裝置(device)和模擬器(simulator)的編譯是不一樣的。需要鏈結靜態庫的工程在編譯device和simulator的時候需要區別對待。需要鏈結到不同的靜態庫。這就很麻煩。

解決方法是使用lipo指令,將device靜態庫和simulator靜態庫合併為乙個靜態庫,鏈結靜態庫的工程只需要鏈結這個肥靜態庫即可滿足device和simulator的編譯。指令在命令列工具中輸入lipo -create build/debug-iphoneos/libname.a build/debug-iphonesimulator/libname.a -output libname.a 這樣在命令列輸入指令還是麻煩,最好能夠在xcode中自動進行合併操作。

這樣需要在靜態庫工程中新增乙個run script,方法是右鍵targets->add->new target,選擇other->shell script target,在run script中輸入以上命令,編譯這個runscript即可完成合併操作。如果想要把device和simulator的靜態庫編譯也自動化,在runscript中新增編譯即可。

iOS 合併 a檔案,製作通用靜態庫

lipo create sqy ios iphoneos libgameplusapi.a sqy ios iphonesimulator libgameplusapi.a output sqy ios libgamepus.a 當中sqy ios iphoneos libgameplusapi.a...

iOS 合併 a檔案,製作通用靜態庫

lipo create sqy ios iphoneos libgameplusapi.a sqy ios iphonesimulator libgameplusapi.a output sqy ios libgamepus.a 當中sqy ios iphoneos libgameplusapi.a...

打包靜態庫,合併靜態庫

ios靜態庫 a 和framework 合併靜態庫 1,開啟終端,輸入lipo create release iphoneos libsbjson.a release iphonesimulator libsbjson.a output combine libsbjson.a 其中release i...