iOS Framework的創(chuàng)建

環(huán)境:Xcode 8

1.創(chuàng)建framework

WX20170602-135146.png
WX20170602-155910.png

2.修改相關配置

1)設定SDK適配的iOS系統(tǒng)版本號
WX20170602-155552.png
2)選擇性添加: armv7s

原因:
armv6, armv7, armv7s是ARM CPU的不同指令集,
armv6設備:iPhone, iPhone2, iPhone 3G,第一代、第二代iPod Touch;
armv7設備:iPhone 3GS,iPhone 4,iPhone 4S,iPad ,iPad 2,iPod Touch 3G,iPod Touch 4;
armv7s設備:iPhone 5,iPad4;
arm64設備:iPhone 5S,iPad Air,iphone6,iphone6plus,iPhone6s,iPhone6s Plus,iPhone7,iPhone7 Plus等;
  
  Xcode6更新后,默認不支持armv7s,如果你提供的Framework默認不支持armv7s架構,但是使用者要支持armv7s架構,這時就會有沖突,所以需要你選擇性是否支持armv7s


WX20170602-135445.png
3)"Build Active Architecture Only" 設置為 "NO"

設置為NO的時候,會編譯支持的所有的版本
設置為YES的時候,是為Debug的時候速度更快,它只編譯當前的architecture 版本


WX20170602-135521.png
4)"Mach-O Type" 設置為 "Static Library"

framework可以是動態(tài)庫也可以是靜態(tài)庫,對于系統(tǒng)的framework是動態(tài)庫,而用戶制作的framework只能是靜態(tài)庫。


WX20170602-135709.png

在Xcode7及以上版本中 Dead Code Stripping、Link with Standard Libraries不再需要設置成NO

5)根據SDK功能需要,來決定是否保留原頭文件,個人習慣刪掉重新創(chuàng)建一個繼承自NSObject的文件
WX20170602-135742.png

WX20170602-140646.png

將自己創(chuàng)建的需要開放的文件拖入到 Public
WX20170602-140106.png

6)分別在模擬器和真機環(huán)境下編譯SDK,在Products文件夾下選中打出來的包,show in finder ,回退一個目錄,即可看到兩個文件夾(Debug或Release模式自選)
WX20170602-143833.png
7)使用終端合并SDK

命令行語句:sudo lipo -create 真機SDKTest文件路徑(步驟6中的圈起來的文件) 模擬器SDKTest -output 自定義合成文件存儲路徑(合成文件的名字SDKTest)

WX20170602-144855.png

注:framework相關問題

1. XXXXX is not an object file (not allowed in a library)
2.SDK中使用了第三方框架問題
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容