1计盒、需求
? ? ?我們?cè)陂_發(fā)iOS的工作中可能會(huì)自己開發(fā)一些.a靜態(tài)庫或者打包一下別人的第三方類庫包裝成自己的.a文件胡控。有時(shí)候我們引入一些C++編譯的第三方文件時(shí)可能會(huì)出現(xiàn)編譯的錯(cuò)誤依许,但是我們?nèi)绻虬?a靜態(tài)庫時(shí)就很少會(huì)出現(xiàn)OC與C++混編的錯(cuò)誤萌庆,原因很簡單.a靜態(tài)庫文件是編譯好的二進(jìn)制文件,二進(jìn)制文件與二進(jìn)制文件互相混編當(dāng)然沒有什么問題。好那么接下來我們開始學(xué)習(xí)打包吧爬泥!
2、實(shí)例
?接下來就以我項(xiàng)目中使用第三方登錄的SDK打成靜態(tài)庫為實(shí)例崩瓤。
?1>我們需要準(zhǔn)備好需要打包的文件
2>接下來我們開始新建一個(gè)工程文件取名KSLogin
3>接下來我們把準(zhǔn)備好的AFNetworking拖入工程中袍啡,注意文件放在一級(jí)目錄下。
4>接下來我們選擇出來需要暴露出來的頭文件
5>接下來我們配置下工程文件
6>配置完之后我們就可以選擇真機(jī)進(jìn)行運(yùn)行在運(yùn)行后我們找到生成的.a文件右鍵選擇show in finder就可以了却桶。
7.此時(shí)生成的.a文件只適用于真機(jī)境输,如果我們需要模擬器可以使用的.a文件用同樣的方法在模擬器上運(yùn)行下就可以了,而且網(wǎng)上有很多教程可以合并兩個(gè).a文件在這里就不進(jìn)行重述了颖系。
注意點(diǎn):
如果打的靜態(tài)庫需要引入系統(tǒng)的庫文件嗅剖,比如當(dāng)前的項(xiàng)目引入了libxml2.2.dylib,而系統(tǒng)庫中只存在libxml2.2.tbd,操作如下:
先引入該庫:選中可以看到文件信息
通過上面的路徑/usr/lib/libxml2.2.dylib,點(diǎn)擊add other
然后shift + command + G,輸入地址:
選中l(wèi)ibxml2.2.dylib ?open 導(dǎo)入即可
如何合并靜態(tài)庫文件:展示.a文件支持的架構(gòu) ? ?lipo -info .a文件
合并:lipo -create xxx.a yyy.a -output zzz.a
以上文檔參考來源:.a靜態(tài)庫制作參考資料