-
通過Xcode的Cocoa Touch Framework創建的默認情況是動態庫,我們可以在Build Settings中搜索Mach-O Type查看:Dynamic Library就是動態庫
Snip20161012_12.png 如果需要創建靜態庫時,將上圖的Mach-O Type修改為Static Library即可
修改為Static Library后,我們可以創建一個類
在.h中聲明對外的接口,在.m中實現
-
把需要暴露的.h文件放到Build Phases-Headers-Public中
Snip20161012_15.png -
分別對Debug和Release的真機占位和模擬器進行編譯,就會對應的調試和發布的版本
Snip20161012_14.png 編譯之前還有在Build Settings中修改Build Active Architecture Only ,它是控制編譯CPU架構的,我們分別在Debug和relaese中將其設置為NO,YES表示只編譯選中模擬器對應的版本,NO則是表示不止編譯活躍的架構,讓所有的架構都編譯,然后在調到Debug和relaese中分別進行編譯即可,
給別人的是release版本的靜態庫
-
.a靜態庫和.framework靜態庫的區別:
- .a是純二進制文件,.framework除了有二進制文件還有資源文件
- .a文件不能直接使用,至少要有.h文件的配合,.framework文件可以直接使用
.a + .sourceFile = .framework
建議使用.framework
-
靜態庫程序該怎么測試(使用復合項目測試)
- 創建一個項目(比如叫復合項目),用來來測試靜態庫的
- 在這個項目中再添加一個工程(比如叫Jingtaiku),點擊下圖的?按鈕,這個?是在Targets最下面的,這個工程類型選擇靜態庫
- 設置工程依賴:點擊Targets-復合項目-Build Phases,在Target Dependencies中添加Jingtaiku
- 編譯靜態庫:這個項目需要運行起來,必須將靜態庫添加到編譯中,點擊Targets-復合項目-Build Phases,在Link Binary With Libraries中添加Jingtaiku
Snip20161012_18.png
Snip20161012_19.png
以下小補充
Snip20161012_16.png