打包靜態(tài)庫

如果只是簡單的靜態(tài)庫打包,我也不多說什么,現(xiàn)在網(wǎng)上大把。作為程序員我們先說說需求。封裝一個第三方framework。不在外部暴露關于該framework的任何消息。

配置

xcode 10.1

第一步 創(chuàng)建靜態(tài)庫工程

創(chuàng)建靜態(tài)庫

按照正常導入封裝代嗎就可以了,當然不是啦,
接下來就是重點了,惡心了很久的東西。
導入我們需要第三方framework。你以為按照網(wǎng)上說的直接導進去,只要不點擊add to targets ,只導入到項目中去就可以了。我不清楚是從Xcode幾開始這種方法不可以了啊。反正我的Xcode10不可以。然后就查閱前篇文章,嘗試了各種奇門異法,終于讓我找到一篇文章,如何將framework變成.a文件。那么就可以打包進我們的SDK里面去了。
引用這篇文章的話:
通過framework的介紹:Framework的英文釋意是框架,主要由Headers、binary文件、.bundle這三部分構成,其實framework就是在.a靜態(tài)庫基礎上的更上一層封裝,包含了資源,二進制文件,和頭文件并生成統(tǒng)一格式方便用戶調(diào)用有點類似<.dylib和.tbd>,并不是重新生成的另外一種形式,只是對老的格式進行了一層更規(guī)范的封裝,統(tǒng)一管理資源文件 頭文件和庫的二進制文件。所以如果你需要的.a文件其實就在.framework文件中。
在你的framework的文件中找到跟framework庫同名的無后綴文件。將這個文件加上.a后綴即可。如圖


拿UM做列子

這樣我們就重新獲取到一個我們需要的.a庫了。
還有個小問題,如果個別第三方里面還有攜帶其他信息文件,也要一并放入到我們創(chuàng)建的文件夾里。

第二部配置

我們導入的第三方一般都是需要引入各種系統(tǒng)庫,和tbd文件的。這個我們一定要做的,不然編譯會出錯。
然后我們的配置項目。
1· 調(diào)整最低支持iOS系統(tǒng)
2· 將Build Active Architecture Only 設置為NO
3 ·如果 SDK 有用到 Category,注意項目設置 Other Linker Flags 添加 -ObjC
4· RGETS (yooweiSDK) - Build Settings-Architectures 增加armv7s。 如果你用的真機是iPhone5 C,生成的Framework不支持armv7s,默認的Architectures不包含armv7s。 所以要在Architectures下增加armv7s,并選中。(個人測過xcode10打包出來的不需要加入這個了。)

第三步 合成虛擬機庫和真機庫

說實話這個沒什么好說的,就是一句命令行

lipo -create 虛擬機庫.a 真機庫.a -output .../Desktop/??.a(生成路徑)

搞定了。

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

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

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