iOS制作.a靜態(tài)庫

1、需求

? ? ?我們在開發(fā)iOS的工作中可能會自己開發(fā)一些.a靜態(tài)庫或者打包一下別人的第三方類庫包裝成自己的.a文件。有時候我們引入一些C++編譯的第三方文件時可能會出現(xiàn)編譯的錯誤,但是我們?nèi)绻虬?a靜態(tài)庫時就很少會出現(xiàn)OC與C++混編的錯誤,原因很簡單.a靜態(tài)庫文件是編譯好的二進制文件,二進制文件與二進制文件互相混編當然沒有什么問題。好那么接下來我們開始學習打包吧!

2、實例

?接下來就以我項目中使用第三方登錄的SDK打成靜態(tài)庫為實例。

?1>我們需要準備好需要打包的文件



2>接下來我們開始新建一個工程文件取名KSLogin


3>接下來我們把準備好的AFNetworking拖入工程中,注意文件放在一級目錄下。


4>接下來我們選擇出來需要暴露出來的頭文件



5>接下來我們配置下工程文件



6>配置完之后我們就可以選擇真機進行運行在運行后我們找到生成的.a文件右鍵選擇show in finder就可以了。


7.此時生成的.a文件只適用于真機,如果我們需要模擬器可以使用的.a文件用同樣的方法在模擬器上運行下就可以了,而且網(wǎng)上有很多教程可以合并兩個.a文件在這里就不進行重述了。

注意點:

如果打的靜態(tài)庫需要引入系統(tǒng)的庫文件,比如當前的項目引入了libxml2.2.dylib,而系統(tǒng)庫中只存在libxml2.2.tbd,操作如下:

先引入該庫:選中可以看到文件信息


通過上面的路徑/usr/lib/libxml2.2.dylib,點擊add other

然后shift + command + G,輸入地址:



選中l(wèi)ibxml2.2.dylib ?open 導入即可

如何合并靜態(tài)庫文件:展示.a文件支持的架構(gòu) ? ?lipo -info .a文件

合并:lipo -create xxx.a yyy.a -output zzz.a

以上文檔參考來源:.a靜態(tài)庫制作參考資料

armv7,armv7s,arm64,i386,x86_64處理器架構(gòu)理解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容