解決一下幾個問題:
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靜態庫合併為乙個靜態庫...