1. 程式人生 > >靜態庫framework或者.a的製作

靜態庫framework或者.a的製作

1、新建工程選擇iOS —> Cocoa Touch Framework

2、新增所需要的檔案

3、TARGETS —> Build Settings 中設定相關項
(1).Build Active Architecture Only 設定為NO的意思是當前打包的.framework支援所有的裝置.否則打包時只能用當前版本的模擬器或真機執行.

(2).Build Setting 搜尋linking 設定Dead Code Stripping 為NO是編譯選項優化,包瘦身,(可不改) Mach-O Type 選中StaticLibrary (靜態庫) Xcode預設是動態庫.

(3). 設定framework最低支援的版本

4、TARGETS —> Build Phases
將需要呈現給來的標頭檔案,直接從Project拖到Public中. 不想呈現出來的.h檔案不建議拖到Private中. 放在project中即可

5、在進行編譯之前應該設定為release模式

6、來到工程目錄樹,Products下的檔案都是紅色的,現在我們選中.framework檔案,分別真機和模擬器執行一遍(成功執行
然後Show in Finder 找到對應的 .framework檔案(上級目錄可以看出是真機還是模擬器資料夾)
真機和模擬器執行成功的檔案是在這倆個資料夾內的

內部分為Debug版本和Release版本,同時兩者有分為真機版本和模擬器版本framework(iphoneos字尾代表真機版本,iphonesimulator字尾代表模擬器)

7、真機版本和模擬器版本framework合併
(1).檢視架構資訊
開啟終端使用命令列 lipo -info 檢視framework架構資訊
真機版本

模擬器版本

(2).合併真機模擬器版本
因為以上獲取的framework只能在對應的版本上執行(即真機只能在裝置上執行模擬器版本只能在模擬器上面執行使用)所以需要合併為通用版本
命令列語句:sudo lipo -create (此處請填寫真機LHFFramework檔案路徑) (此處填寫模擬器LHFFramework檔案路徑) -output 自定義合成檔案儲存路徑(合成檔案的名字LHFFramework)

根據以上命令就在相應位置生成了新的AppVest檔案,然後把這個新生成的檔案拷貝到相應的framework中進行LHFFramework檔案替換

(3).檢視替換後的framework支援全部真機模擬器架構

8、製作好的framework整合使用
把製作好的framework拖入到工程中,引用相關標頭檔案,然後初始化進行暴露方法呼叫

 

 

參考資料:

https://www.jianshu.com/p/f2bb038db637

https://blog.csdn.net/Future_One/article/details/86172828

https://xiaozhuanlan.com