1. 程式人生 > >多工程聯編之靜態庫工程使用

多工程聯編之靜態庫工程使用

把靜態庫工程作為工具庫使用:

1、新建工程TestDemo,新建立個資料夾Dependency用於存放靜態庫檔案
這裡寫圖片描述

2、在Dependency資料夾下建立靜態庫工程(一般作為工具庫檔案),shift+cmd+N -> Cocoa Touch Static Library(.a檔案)。注意建立的時候把靜態庫和TestDemo關聯
這裡寫圖片描述
這裡寫圖片描述
靜態庫建立完成,此時.a檔案是紅色,等配置成功編譯後,就會變黑。

3、主程式配置庫工程標頭檔案搜尋相對路徑:Targets -> Building Setting -> Header Search Paths,檔案查詢方式為recursive,迴圈遞迴(從左邊目錄把CommonKit.xcodeproj檔案直接拖進去,自動生成路徑,去掉檔名)。
這裡寫圖片描述


這裡寫圖片描述
主程式 Targets -> Build Phases -> Link Binary With Libraries 新增靜態庫
這裡寫圖片描述

4、庫工程配置庫工程標頭檔案搜尋相對路徑: Targets -> Building Setting -> Header Search Paths,檔案查詢方式為recursive,迴圈遞迴。
這裡寫圖片描述
這裡寫圖片描述
庫工程Build Phases裡把需要暴露的標頭檔案新增到Headers->Public下;其實預設在Copy Files裡已經把所有的標頭檔案新增進去了,在Headers->
這裡寫圖片描述Public下不新增也可以正常執行。

另外注意:如果靜態庫中若有category類,則在使用靜態庫的主專案配置中【Other Linker Flags】需要新增引數【-ObjC】。

5、編譯一下,成功。CommonKit.m裡寫一個測試方法試試。
這裡寫圖片描述

這裡寫圖片描述

另外,也可以使用workspace工作空間,把xcodeproj工程和靜態庫檔案關聯在一起。

1.先建立一個workspace工作空間,再建立一個project工程,關聯到此workspace(也可以直接匯入project,當然也可以後在project中建立workspace,無先後);

workspace建立:xcode -> FIle -> NEW -> workspace 創建出一個空workspace(ctrl+cmd+N);
2.建立靜態庫工程時,同上步驟,關聯到此workspace即可。

一般常使用靜態庫作為工程基礎配置,封裝一些基本通用的功能在裡面。但是靜態庫也是可以拿出來單獨使用的,只需要暴露出要使用的標頭檔案(.h),這樣別人就看不到方法的實現了。