iOS靜態庫管理

2021-06-12 05:03:28 字數 1135 閱讀 4788

解決一下幾個問題:

1.生成device和simulator通用的.a檔案

2.debug版應用程式呼叫debug版.a,release版應用程式呼叫release版.a

由於ios生成的庫的屬性比較多,因此開發人員需要對靜態庫進行必要的管理。我只是提供了一種我認為比較不錯的辦法,可以相對提高一些效率,如果讀者有更好的辦法,望讀者不吝賜教,哈哈!

1.假設生成的庫的名稱是libtest.a

2.新增乙個run script,如圖所示

3.在shell中新增以下命令,用於生成device和simulator通用的.a檔案。

lipo -create "build/products/release-iphonesimulator/$" "build/products/release-iphoneos/$" -output "build/products/merge-release/$"

lipo -create "build/products/debug-iphonesimulator/$" "build/products/debug-iphoneos/$" -output "build/products/merge-debug/$"

另外,在和release-iphoneos同級的目錄下建立兩個資料夾:merge-debug和merge-release,分別用於儲存合成後的debug版的通用檔案和release版的通用檔案。其中$就是生成的目標檔案的名稱,即libtest.a。

4.把merge-debug或merge-release中的任意乙個資料夾中的libtest.a拖入要使用的工程中。注意兩點:a.不勾選拷貝libtest.a的選項,這樣如果libtest有變化只要重新編譯即可。如果選擇拷貝的話,每次編譯完之後還需要把生成的libtest.a重新拖入要使用的工程,比較麻煩;b.工程中的libtest.a檔案只是乙個名稱而已,即使檔案不存在也是沒有關係的(如果有第5步存在)

5.在library search path中新增merge-debug和merge-release的路徑

iOS 靜態庫 在iOS中建立靜態庫

學習了creating a static library in ios tutorial 本想做一下翻譯的工作,但是在網上已經有人翻譯過了,因此不添足。譯文請見 在ios中建立靜態庫 在實踐中,發現了一些奇怪的錯誤。根據文章編寫了程式,imagefilters,寫了指令碼生成通用靜態庫,在corei...

靜態庫管理

靜態庫管理工具 ar 和 ranlib 參考 unix 系統與 軟體開發 中國鐵道出版設 邵國金主編 第十章 程式設計基礎篇 ar的功能是靜態庫檔案的管理,可用於靜態庫的建立,模組新增,提取及刪除等,其用法如下 ar p mod relpos count archive member 其中 p 功能...

iOS合併靜態庫

對ios專案來說,靜態庫對於裝置 device 和模擬器 simulator 的編譯是不一樣的。需要鏈結靜態庫的工程在編譯device和simulator的時候需要區別對待。需要鏈結到不同的靜態庫。這就很麻煩。解決方法是使用lipo指令,將device靜態庫和simulator靜態庫合併為乙個靜態庫...