如果只是簡單的靜態(tài)庫打包,我也不多說什么,現(xiàn)在網(wǎng)上大把。作為程序員我們先說說需求。封裝一個第三方framework。不在外部暴露關于該framework的任何消息。
配置
xcode 10.1
第一步 創(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后綴即可。如圖

這樣我們就重新獲取到一個我們需要的.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(生成路徑)
搞定了。