本文參考Bart_Simpson 的swift——創(chuàng)建自己的framework,以及真機和模擬器兩版本的合并肥橙!文章睁搭,感謝該作者。
編譯環(huán)境
macOS Sierra 版本 10.12.6
Xcode版本 9.0
序言
本文直接濾過如何生成自己的Framework璧南,如果有不清楚的同學(xué)自己去網(wǎng)上搜索資料,本文直接從已經(jīng)生成了一個Swift版本的Framework师逸,現(xiàn)在如何打包合并并提供給工程使用司倚。
1.將編譯環(huán)境替換成release環(huán)境。
點擊run 選擇Edit Scheme
將Debug改為Release篓像,點擊Close
2.回到工程中动知,選擇Framework的工程,先選擇模擬器進行編譯 员辩,command+B 盒粮,編譯完成以后再次在真機上選擇編譯,編譯成功以后屈暗。
先選擇模擬器進行編譯
再選擇真機進行編譯
3.分別打開Framework文件目錄然后合并
打開Framework文件目錄
顯示Framework文件目錄
終端輸入 lipo -create 真機路徑 模擬器路徑 -output 真機路徑(ps:這幾個路徑就是上圖拖動到終端后的路徑)
然后輸入lipo -info加上面提到的合并后的這個文件路徑拆讯,打印這些內(nèi)容
幾個重要概念
1、模擬器指令集
i386|x86_64 是Mac處理器的指令集养叛,i386是針對intel通用微處理器32架構(gòu)的种呐。x86_64是針對x86架構(gòu)的64位處理器。所以當(dāng)使用iOS模擬器的時候會遇到i386|x86_64弃甥,iOS模擬器沒有arm指令集爽室。
2、目前iOS移動設(shè)備指令集
arm64:iPhone5S| iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone3GS|iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
armv6 : iPhone, iPhone2, iPhone3G, 第一代淆攻、第二代 iPod Touch(一般不需要去支持)
然后將生成的文件替換真機中對應(yīng)的文件阔墩,即將合并后生成的文件替換真機中原有的文件
但是并沒有完,不知道為什么瓶珊,終端這樣合并只是假象啸箫,你需要手動去將真機中Modules里的swiftdoc文件和模擬器Modules里的swiftdoc文件合并到一起
將模擬器的這些東西拷貝,復(fù)制上圖對應(yīng)的真機文件夾里面去伞芹。文件合并到一塊后結(jié)果如下圖:
現(xiàn)在大功告成忘苛!這個時候就可以將Framework拖到對應(yīng)工程中使用了蝉娜,oc和swift混編的framework也可以這樣合并!