一.采用手動導(dǎo)入第三方SDK方式
-
1.創(chuàng)建framework,刪除自帶的.h .m文件
2.在buid setting 搜索 mach
將Mach-O Type 改為 Static Library(靜態(tài)庫)類型
-
3.Build Active Architeture only 改為NO
4.把用到的文件及文件夾拖到里面夭苗,第三方文件/庫除外韩肝,(需要在使用封裝庫的項(xiàng)目中重新配置info.plist)凰棉,添加圖片資源-新建一個.bundle資源打毛,把圖片、sb想罕、xib放到.bundle資源里面掸屡,修改圖片路徑
??注意AppDelegate 、info.plist和ViewController不要拖落竹,AppDelegate里面的方法弄成暴露接口,在項(xiàng)目中的AppDelegate調(diào)用
3種方式處理.bundle和.framework
?(a)货抄、(b)上架打包失敗,且copy files中添加framework
(a)前提.bundle庫拖到了建立的framework項(xiàng)目中朱转,建立的framework的文件里面用到圖片的路徑就得修改為:xxx.framework/xxx.bundle/a.png
(b)前提.bundle庫拖到了建立的framework項(xiàng)目中蟹地,并且打完靜態(tài)庫之后又把.bundle庫拖到了Headers文件里暴露給使用者,建立的framework的文件里面用到圖片的路徑就得修改為:xxx.framework/Headers/xxx.bundle/a.png
?(c)??????推薦:前提.bundle庫不拖到建立的framework項(xiàng)目中或者不把a(bǔ)dd to targets選中見下條5藤为,最后把.bundle庫和.framework庫一起提供給使用者怪与,文件里面用到圖片的路徑就得修改為:xxx.bundle/a.png
- 5.手動導(dǎo)入第三方庫/文件(便于方便可以把第三方SDK文件夾全部拖進(jìn)去,包括bundle等等)缅疟,但是不要添加到該framework上面
- 6.導(dǎo)入第三方靜態(tài)庫之后再link依賴的系統(tǒng)庫和第三方framework等庫文件分别,像這樣,deployment target選最低
- 7.若用到.pch文件存淫,重新修改.pch 文件路徑耘斩,搜索prefix header 修改路徑:例如
$(SRCROOT)/$(PROJECT_NAME)/VideoHeader.pch
- 8.選擇需要公開的頭文件,將頭文件暴露出去桅咆,供外界使用括授,所有的編譯文件都在Project中,需要右擊添加到public里面
??注意公開的頭文件中,#import的其他類也要公開荚虚,添加到public中薛夜,如果不想公開,就在頭文件用@class的方式版述,在對應(yīng)的.m中用#import方式
- 9.選中真機(jī)和模擬器分別編譯一下
- 10.合并真機(jī)和模擬器生成的二進(jìn)制文件
打開終端 輸入 lipo -create第一個framework文件下二進(jìn)制文件的絕對路徑 第二個framework文件下二進(jìn)制文件的絕對路徑 -output 最終的二進(jìn)制文件路徑 然后enter鍵
- 11.生成的二進(jìn)制文件替換原先的真機(jī)生成或模擬器生成的二進(jìn)制文件,然后相應(yīng)的其所在的.framework文件就是最終的framework,將其導(dǎo)入別的工程使用時這個工程需要引進(jìn)制作framework時用到的第三方SDK
二.使用cocoapods導(dǎo)入到framwork時注意事項(xiàng),其他都和手動導(dǎo)入一樣,當(dāng)在模擬器編輯時候會報錯,
選擇 Build Settings 梯澜,在 Architectures 下增加 armv7s 。真機(jī)下不許改動,如果改動編譯會報錯
三.新項(xiàng)目使用framework(對應(yīng)上面的abc)
- 1.引用xxx.framework渴析、導(dǎo)入
#import <xxx/xxx.h>
晚伙、配置info.plist -
2.xxx.framework中依賴的第三方庫和系統(tǒng)庫,那么需要在Linked Frameworks and Libraries里面添加
例如:faceface.framework依賴IDLFaceSDK.framework,而IDLFaceSDK.framework依賴libc++.tbd,libc++.tbd必須在項(xiàng)目中添加檬某,否則報錯撬腾!
- 3.??若xxx.framework中有分類報錯的話,則按下圖修改項(xiàng)目配置恢恼,在項(xiàng)目中Build Settings中搜索linker民傻,在linking中的Other Linker Flags中輸入-ObjC,如圖