復(fù)習(xí):
二進(jìn)制解決的是編譯慢的問題,直接編譯成一個(gè)二進(jìn)制,省去編譯的過程吩案。
靜/動(dòng)態(tài)庫的操作
二進(jìn)制實(shí)踐:
1、手動(dòng)打包帝簇,組件庫測試工程添加一個(gè).framework靜態(tài)庫徘郭,拖入引用代碼。編譯成靜態(tài)庫放在和源碼文件層次的同一個(gè)層次的文件夾Products中丧肴,頭文件要單獨(dú)弄一份出來残揉。源碼和二進(jìn)制的切換。創(chuàng)建庫工程或者創(chuàng)建復(fù)合工程芋浮,目的就是拿到.framework抱环。
2、自動(dòng)打包方案:就是本篇要說的——對已經(jīng)上傳到遠(yuǎn)程的纸巷、打好標(biāo)簽的
本地源碼進(jìn)行二進(jìn)制化镇草,17'18''。
一瘤旨、cocoapods-packager
1. 作用:快速完成類庫的打包梯啤。僅僅針對于pod模板庫,找到spec存哲,進(jìn)行打包因宇;
2. 安裝:sudo gem install cocoapods-packager
,如果安裝成功但使用package命令時(shí)顯示沒有package宏胯,考慮重裝cocoapods羽嫡。
3. 使用:環(huán)境變量選中是源碼 pod package spec文件名
(注意:是在本地模板庫文件夾下本姥,使用該命令肩袍,即本地有podspec文件的那個(gè)文件夾下,該命令會(huì)根據(jù)podspec中的信息去打包婚惫,見《快速打包命令在哪個(gè)文件夾下使用.png》)氛赐。
4.使用快速打包前提:該工程是模板庫工程;已經(jīng)上傳到遠(yuǎn)程先舷;已經(jīng)打好標(biāo)簽艰管。
5.打好包的文件在何處:在podspec同一個(gè)文件下,即執(zhí)行快速打包命令的那個(gè)文件夾下蒋川,繼續(xù)進(jìn)入ios/XX.framework/version/A文件夾中牲芋。
6.包信息:模擬器和真機(jī)的所有CPU構(gòu)架
7.小問題:如果pod update安裝一下,發(fā)現(xiàn)安裝的不是最新tag版本,應(yīng)該變成二進(jìn)制庫的沒有變成二進(jìn)制庫缸浦,那么夕冲,方案一:pod cache clean -all、刪除pod文件夾裂逐、刪除Podfile.lock 歹鱼、刪除.workspace;如果方案一無法解決卜高,那就方案二:pod repo update
(把庫更新下弥姻,不過時(shí)間會(huì)比較長)
- 直接
pod package spec文件名
,如果有環(huán)境變量掺涛,則會(huì)報(bào)錯(cuò):podspec has binary-only depedencies, mangling not possible.
- 有環(huán)境變量的一定要加上環(huán)境變量:
IS_SOURCE=1 pod package XMGSegmentBar.podspec
庭敦; - 生成XMGSegmentBar-0.1.0文件夾,里面有生成的庫薪缆。
- 把生成好的二進(jìn)制庫放入products文件夾螺捐,這個(gè)文件夾是我們規(guī)定好存儲(chǔ)二進(jìn)制文件的。
- git提交到遠(yuǎn)程倉庫矮燎,至于XMGSegmentBar-0.1.0文件夾是快速打包生成的定血,可刪可不刪,沒什么用了诞外。
- 宿主工程使用澜沟。
pod update --no-repo-update
應(yīng)該會(huì)有兩個(gè)庫會(huì)變成二進(jìn)制,因?yàn)檫@兩個(gè)做了二進(jìn)制峡谊,且默認(rèn)安裝二進(jìn)制茫虽。
二、自動(dòng)打包都省略了哪些步驟
- 在庫測試工程中添加targets(即.framework庫)既们;
- 修改.framework庫對應(yīng)的設(shè)置(全構(gòu)架濒析、靜態(tài)庫、暴露頭文件啥纸、release版本)号杏;
- 拖文件到靜態(tài)庫對應(yīng)的文件夾中。
~操作庫的一些命令:
- 查看庫的構(gòu)架:lipo -info 庫名
- 裁剪庫:lipo -remove armv7s XMGSegmenBar -output XMGSementBarRemove7s (XMGSegmenBar斯棒、XMGSementBarRemove7s都是庫名盾致,從庫中拆減掉armv7s 構(gòu)架)