.a + .h + sourceFile = .framework。 複製代碼
咱們直接建立調試項目,通常不直接建立靜態庫。由於須要打斷點,等調試成功後再打包相應的靜態庫。git
建立項目,而且在項目中添加 static library
,最終以下圖所示。github
Build Phases --> Copy Files 添加.h文件便可。bash
設置支持全部模擬器架構 Build Settings --> Build Active Architecture Only
--> Debug 改成 NO,設置支持全部手機架構。markdown
選中Print
Target,而後分別選擇Generic iOS Device
和任意一個模擬器
各編譯一次,編譯完後,咱們會看到工程中Products文件夾下的libPrint.a
由紅色變成了黑色,而後show in finder,看看生成的文件。架構
lipo-info + 靜態庫名字
命令查看靜態庫支持的框架。lipo -create 第一個.a文件的絕對路徑 第二個.a文件的絕對路徑 -output 最終的.a文件路徑
。framework項目默認是動態庫。 靜態庫配置:Build Settings --> Mach-O Type --> 改成 Static Library
。 設置支持全部模擬器架構 Build Settings --> Build Active Architecture Only
--> Debug 改成 NO,設置支持全部手機架構。框架
編寫完代碼後,Build Phases --> Headers --> public
添加頭文件。oop
選中LibTest
Target,而後分別選擇Generic iOS Device
和任意一個模擬器
各編譯一次,編譯完後,咱們會看到工程中Products文件夾下的LibTest.framework
由紅色變成了黑色,而後show in finder,看看生成的文件。ui
lipo -info framework下的二進制文件名字
命令查看靜態庫支持的框架。lipo -create 第一個framework下二進制文件的絕對路徑 第二個framework下二進制文件的絕對路徑 -output 最終的二進制文件路徑
。注意: 若是靜態庫中有category
類,則在使用靜態庫的項目配置中Other Linker Flags
須要添加參數-ObjC
或者-all_load
。spa
github: github.com/CaoXueLiang…調試