(1)靜態(tài)庫(kù)的創(chuàng)建 工程名 SuperSDK
(2)刪除 .m實(shí)現(xiàn)文件
(3)將.h文件內(nèi)容替換為 #import < UIKit/UIKit.h>
導(dǎo)入U(xiǎn)IKit的頭文件屏富,這是創(chuàng)建一個(gè)庫(kù)所需要的脂男。當(dāng)你在創(chuàng)建不同的組成類時(shí)养叛,你將會(huì)將它們添加到這個(gè)文件中,確保它們能夠被庫(kù)的使用者獲取到宰翅。
(4)導(dǎo)入U(xiǎn)IKit框架
你所構(gòu)建的項(xiàng)目依賴于UIKit弃甥,然而Xcode的靜態(tài)庫(kù)工程不會(huì)自動(dòng)連接到UIKit。要解決這個(gè)問題汁讼,就要將UIKit作為依賴庫(kù)添加到工程中淆攻。點(diǎn)擊BuildPhases,展開Link Binary with Libraries這一部分嘿架,點(diǎn)擊+添加一個(gè)新的framework瓶珊,找到UIKit.framework,點(diǎn)擊add添加進(jìn)來耸彪。
(5)添加新的phase
如果不結(jié)合頭文件伞芹,靜態(tài)庫(kù)是沒有用的,靜態(tài)庫(kù)編譯一組文件蝉娜,在這些文件中類和方法都以二進(jìn)制數(shù)據(jù)的形式存在唱较。在你創(chuàng)建的庫(kù)中,有些類將能夠被公開訪問到召川,有些類只能由庫(kù)內(nèi)部訪問并使用绊汹。接下來,你需要在build欄中添加新的phase扮宠,來包含所有頭文件,并將它們放到編譯器可以獲取到的某個(gè)地方。然后坛增,你將會(huì)拷貝這些到你的framework中获雕。
(6)設(shè)為公共接口
把SuperSDK.h從項(xiàng)目導(dǎo)航欄中拖到中央面板的Copy Headers下的Public部分。這一步確保任何使用你的庫(kù)的用戶均可以獲取該頭文件收捣。
(7)
將創(chuàng)建好的控件從Finder中拖到Xcode下SuperSDK目錄下届案,選擇Copy items into destination group’s folder,點(diǎn)擊下方的選擇框罢艾,確保SuperSDK靜態(tài)庫(kù)目標(biāo)被選中楣颠。把頭文件添加到Project組,即使在SuperSDK目錄下咐蚯,默認(rèn)也還是private童漩。
配置Build Settings
然后選擇SuperSDK靜態(tài)庫(kù)目標(biāo),選擇Build Setting欄春锋,然后搜索public header矫膨,雙擊Public Headers Folder Path,在彈出視圖中鍵入如圖所示內(nèi)容:
輸入 include/$(PROJECT_NAME)
因?yàn)槟阏趧?chuàng)建framework供他人使用期奔,最好禁掉這些功能(無效代碼和debug用符號(hào))侧馅,讓用戶自己選擇對(duì)自己的項(xiàng)目有利的部分使用。和之前一樣呐萌,使用搜索框馁痴,改變下述設(shè)置:
Dead Code Stripping設(shè)置為NO
Strip Debug Symbol During Copy 全部設(shè)置為NO
Strip Style設(shè)置為Non-Global Symbols
(8)編譯生成.a文件
選擇目標(biāo)為iOS Device,按下command + B進(jìn)行編譯肺孤,一旦成功罗晕,工程導(dǎo)航欄中Product目錄下libSuperSDK.a文件將從紅色變?yōu)楹谏砻鳜F(xiàn)在該文件已經(jīng)存在了渠旁。右鍵單擊libSuperSDK.a攀例,選擇Show in Finder。