啥都不說直入主題
1.打開xcode創建framework項目
2.將你的源碼文件放進工程
3.將你要公開的頭文件寫在這里
并且在build phases里把這些頭文件從project移動到public
4.選擇工程文件>target第一項>Build Setting>搜索linking,然后幾個需要設置的選項都顯現出來,首先是Dead Code Stripping設置為NO,網上對此項的解釋如下,大致意思是如果開啟此項就會對代碼中的”dead”、”unreachable”的代碼過濾,不過這個開關是否關閉,似乎沒有多大影響,不過為了完整還原framework中的代碼,將此項關閉也未曾不可。然后將Link With Standard Libraries關閉,我想可能是為了避免重復鏈接。最后將Mach-O Type設為Static Library,framework可以是動態庫也可以是靜態庫,對于系統的framework是動態庫,而用戶制作的framework只能是靜態庫。還有一個我踩的坑,要設置defines module為NO,不然集成的時候會出現Include of non-modular header inside framework module錯誤。設置bitcode為NO。
這里的默認就好了。
5.如果要用到cocoapods第三方庫,則直接跟正常項目一樣添加cocoapods就行了
6.添加bundles圖片,則直接新建文件夾,然后改后綴名為.bundle然后把圖片拖進去就行了。
用圖片的時候這樣用
7.分別選擇模擬器和真機command+B最終生成模擬器的framework和真機的framework,然后我們將他們合并:
打開終端,lipo -create 模擬器framework里面的二進制文件路徑 真機framework里面的二進制路徑 -output 輸出合并后的二進制路徑/二進制文件名稱(注意是合并framework里面的二進制文件而不是framework)最后把輸出合并后的二進制文件復制替換到模擬器framework里面的二進制文件和真機framework里面的二進制文件。
8.將替換合并后的模擬器framework或者真機framework直接拖到項目工程中,然后再把存放圖片的bundle也拖到項目工程中。直接使用就行了。
參考資料:
Xcode 創建.a和framework靜態庫
ios開發:Xcode8制作framework及使用
iOS8 Framework使用加載xib及圖片
【iOS 開發】打包 Framework 時使用 CocoaPods 引入第三方庫的方法