1.記錄自己在打包framework過程中包含了第三方的framework崔涂。
-
首先找到第三方的二進制文件WeChatb1f590c44c760c0194ee21e00d9d1a4a.png
-
再將二進制文件后綴改成 .a 文件辽狈。 將.a文件放入Header文件里面。再將第三方.framework 拷貝出來竭缝。結構如下:
WeChatb0e0669067bab728f59e09c7bc25aec7.png
OK 準備工作已經(jīng)做的差不多了鞍恢,我們可以自己來制作framework了傻粘。
1.創(chuàng)建framework工程
2.將framework拖進工程中巷查,工程分兩部分,一個是原始文件(紅色部分)抹腿,一個是我需要進行封裝的文件(藍色部分):
3.將bitcode置為NO
4.1 選擇工程->targe->build setting,在搜索框中搜索linking旭寿,進行如下設置
4.2 將Build Active Architecture Only 設為 NO
5.1 把要公開的頭文件已到Public中去警绩,在使用.framework時只能調(diào)用公開.h文件中的聲明。
5.2 完成上述步驟之后,在HYSDK.h文件中,把所有需要暴露的.h文件都用#import < HYSDK/PublicHeader.h>引入,記住一定要將所有的需要暴露的.h文件都寫在給定位置,不然編譯后生成的.framework在引用的時候會有警告;
6.開始編譯盅称,選擇Generic iOS Device 或者 真機 或 模擬器肩祥,編譯一下,再選擇模擬器環(huán)境編譯一下
-
上面的操作會出現(xiàn)兩個版本的.framework缩膝,點擊Products中的framework混狠,選擇右鍵在文件夾中查看。
屏幕快照 2019-07-30 下午3.28.26.png
8.我這里只是做真機的疾层。如果是需要模擬器和真機都有的話可以分別將模擬器和真機編譯出來的文件進行合并 将饺。終端指令:lipo -create +上面兩個文件的路徑 +-output+ 合成后文件的輸出路徑(路徑后再拼一下要導出的文件就不會出現(xiàn)其他教程里 can't move temporary file的error了,這樣直接生成所需目標文件不會生成.lipo的文件)痛黎;
lipo -create /Users/shiguang/Library/Developer/Xcode/DerivedData/HYSDK-dyfcbfdpajuozpbaowtdlgrxtgpm/Build/Products/Debug-iphonesimulator/HYSDK.framework/HYSDK/Users/shiguang/Library/Developer/Xcode/DerivedData/HYSDK-dyfcbfdpajuozpbaowtdlgrxtgpm/Build/Products/Debug-iphoneos/HYSDK.framework/HYSDK -output /Users/shiguang/Desktop/00000Demo/000/0lib/HYSDK
9.創(chuàng)建成功之后予弧。新建工程。將新的framework再倒入進去湖饱。配置相關依賴庫即可掖蛤。如果報找不到第三方的庫,則需要將第三方SDK.framework倒入進來即可井厌。