最近因?yàn)楣拘枨螅枰秧?xiàng)目的一部分功能封裝起來。又不能給源碼所以考慮使用靜態(tài)庫的形式,這是接觸iOS開發(fā)差不多一年第一次搞這個(gè)。查了些資料,把一些步驟寫下來。
當(dāng)然這個(gè)真正的難點(diǎn)是在你代碼的一些封裝,這個(gè)需要技術(shù)的積累。我今天主要是打包成.a文件的一些心得。
新建一個(gè)用于靜態(tài)庫的工程或者target,我在工程里面用的是target。用什么其實(shí)無所謂。
屏幕快照 2016-11-22 上午11.17.50.png
屏幕快照 2016-11-22 上午11.18.03.png
這兩個(gè)新建靜態(tài)庫的方法都行。
下一步就需要你公開給開發(fā)者使用的.h文件。
屏幕快照 2016-11-22 上午11.18.41.png
如果有多個(gè)target,需要選中你需要的那個(gè)target。然后在Headers里面把剛剛需要公開的.h文件添加進(jìn)去。在Compile Sources里面把工程里面所有private文件添加進(jìn)去。
到了這一步就可以把代碼打包成靜態(tài)庫了。
靜態(tài)庫有四種類型:
屏幕快照 2016-11-22 上午11.44.25.png
根據(jù)你的需要去編譯對應(yīng)的.a文件。
usr里面就是你暴露出去的.h文件。
在具體編譯的時(shí)候,如果run是debug模式,command B出來的就是debug。release也是一樣的道理。
屏幕快照 2016-11-22 上午11.25.11.png
這樣,.a文件是打包好了。但是還不夠,我們需要把release或者debug模式下真機(jī)和模擬器兩個(gè).a文件合并成一個(gè).a文件。打開你的終端
lipo -create 需要合并的其中一個(gè).a文件路徑 需要合并的另一個(gè).a文件路徑 -output 輸出路徑/文件名.a
屏幕快照 2016-11-22 下午1.58.15.png