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文件放入一個文件夾,再拖入其他項目中,或者同時將.framework和bundle拖入其他項目中