26. XCode 8 制作framework

1. 先創建一個項目,選擇Cocoa touch Framework,點擊下一步

20161110225335348.png

2. 把自帶的.h文件刪除,再將要打包成的.framework源代碼拖入項目中

3. 項目設置,選擇工程->targe->build setting,在搜索框中搜索linking,進行如下設置

屏幕快照 2017-07-20 下午3.56.33.png

4. 把要公開的頭文件已到Public中去,在使用.framework時只能調用公開.h文件中的聲明

屏幕快照 2017-07-20 下午4.06.08.png

5. 開始編譯,選擇Generic iOS Device 或者 真機,編譯一下,再選擇模擬器環境編譯一下

屏幕快照 2017-07-20 下午4.09.17.png

6. 上面的操作會出現兩個版本的.framework,點擊Products中的framework,選擇右鍵在文件夾中查看。

屏幕快照 2017-07-20 下午4.15.34.png

7. 真機版本適用于真機調試開發,模擬器版本適用于模擬器調試開發,將兩個版本中的 CWen 文件通過終端合并成通用的,終端指令:lipo -create +上面兩個文件的路徑 +-output+ 合成后文件的輸出路徑;

屏幕快照 2017-07-20 下午4.28.05.png

8. 將合并生產的MyFramework文件替換真機生產的MyFramework.framework中的MyFramework文件

9. 創建一個新的項目,將替換后的MyFramework.framework引入到項目中

10. 接著在工程的search path中加上此framework的Headers的路徑

屏幕快照 2017-07-20 下午4.33.08.png

11. 按下Command + R進行編譯,沒有錯誤的話在開發中引入.framework中的頭文件就可以使用了,下面是我在集成框架遇到的錯誤,這種情況是編譯沒有錯誤,運行的時候就會報這樣的錯誤,也就是說在鏈接的時候發生了錯誤。

20161110225552695.png

12. 解決方法:在tagert中的Other Linker Flags 中加入所需的參數,一般是這三個:-ObjC、-all_load、-force_load,我添加了第一個問題就解決了。

20161110225605785.png

13.至此,我的.framework制作和使用就完成了,使用過程:在項目的全局.pch文件中包含了.framework頭文件,剛開始編寫代碼時沒有提示, clear一下再編譯就好了。

14.問題補充:如果制作的.framework中包含其他第三方框架,而且其他第三方框架中有bundle文件,在拉入的時候可以忽略這個bundle,制作.framework成功后,可以將這個.framework和剛才那個bundle文件放入一個文件夾,再拖入其他項目中,或者同時將.framework和bundle拖入其他項目中

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容