Xcode8.0 製作.framework

最近公司要整理框架,想製作成靜態庫.framework,自己在也網上看了相關的資訊,在這裏記錄下自己操作步驟,自己沒有做過多版本的測試,如果大家在製作和使用過程中遇到了其他的問題,希望可以留言一起討論學習下。進入正題:


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


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






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




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




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




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




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



8.如果出現下面的提示,說明輸出路徑有相同的名字




9.將合併生產的CWen文件替換真機生產的CWen.framework中的CWen文件


10.創建一個新的項目,將替換後的CWen.framework引入到項目中




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




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




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





14.至此,我的.framework製作和使用就完成了,使用過程:在項目的全局.pch文件中包含了.framework頭文件,剛開始編寫代碼時沒有提示, clear一下再編譯就好了。遇到的問題也就是這些,後期使用中如果遇到其他的問題會再來這裏補充,剛剛接觸這一塊,有什麼不對的地方希望大家可以指出。


15.問題補充:

如果製作的.framework中包含其他第三方框架,而且其他第三方框架中有bundle文件,在拉入的時候可以忽略這個bundle,製作.framework成功後,可以將這個.framework和剛纔那個bundle文件放入一個文件夾,再拖入其他項目中,或者同時將.frameworkbundle拖入其他項目中


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章