硬體:macbook air 系統:OSX EI Capitan 版本:10.11.3 xcode : Version 7.2.1 (7C1002) 最近在做ios的靜態庫(據說framework動態庫不能上傳到app store).a 和framework都做過了,這裡就先說framework的制
環境:
硬體:macbook air
系統:OSX EI Capitan 版本:10.11.3
xcode : Version 7.2.1 (7C1002)
最近在做ios的靜態庫(據說framework動態庫不能上傳到app store).a 和framework都做過了,這裡就先說framework的製作流程:
1.首先在xcode下新建cocoa touch framework工程:
2.新建好工程後,往裡面添加要封裝的代碼,並且把包含公有api的頭包含到自動生成的頭文件裡面
或者到Build Phases下Headers裡面把公有頭文件放到public下
3.在Build Setting——>Linking找到Mach-O Type 把值:Dynamic Library改為:Static Library,缺少這一步生成的framework就是動態庫
4.找到Edit scheme在run——>info下把build configure的值由預設值Debug 改為Release
5.選擇要編譯的硬體環境:分別在Generic IOS Device和 iPhone 6s Plus(選擇最新的模擬器)下編譯一次,編譯完後就可以看到工程的products文件下的xxx.framework由紅色變成黑色(註意:如果只編譯了iphone 6s Plus模擬器,沒有編譯 Generic IOS Device ,那麼xxx.framework還是不會變成黑色)
6.xxx.framework 變成黑色後,選中xxx.framework右鍵show in finder 就可以看到生成的framework靜態庫。分別有Release-iphoneos真機版和Release-iphonesimulator模擬器版,也就是說生成的版本只能分別在各自的硬體環境下使用。
7.合併真機和模擬器版framework靜態庫,這樣就可以在模擬器和真機下使用了,不過要註意生成的靜態庫的大小等於真機版和模擬器版的大小的和,所以要對程式進行縮小時,可以只用其中一個版本
使用xcode自帶的lipo可以合併兩個版本:在終端下使用命令:lipo -create /User/...../release-iphoneos/xxx.framework/xxx /User/...../release-iphonesimular/xxx.framework/xxx -output ./xxx
其中xxx為你的庫的名稱,路徑為生成的靜態庫的路徑,然後把生成的xxx放到真機或者模擬器版的xxx.framework裡面替換裡面原有的xxx庫