前言:對(duì)于我們iOS開(kāi)發(fā)來(lái)說(shuō)席爽,打包是每天要干的事,項(xiàng)目比較小的話使用Xcode自帶的Product -> Archive打包方法還是很快的啊片,但是一旦工程項(xiàng)目比較大的話只锻,那漫漫的打包時(shí)間,而且也干不了別的紫谷,苦逼不齐饮?可恨不?MMP不笤昨?作為一個(gè)程序員祖驱,重復(fù)的工作做得越少越好,不扯淡了瞒窒,下面開(kāi)始正題捺僻。
平常我們打包主要有兩種用途:
1、? 提交測(cè)試版本ipa給測(cè)試人員?
? ? 配置好測(cè)試描述文件崇裁,然后`Product -> Archive`編譯打包,選擇`Organizer`,導(dǎo)出`ad hoc 的 ipa`?包匕坯。再上傳到Fir等第三方平臺(tái)上,然后通知測(cè)試同事進(jìn)行測(cè)試寇壳。整個(gè)流程下來(lái)需要人工監(jiān)守操作比較耗費(fèi)時(shí)間醒颖。
2、 提交ipa包到App Store已供審核?
? ? 配置好正式的描述文件壳炎,然后同樣的方式打包導(dǎo)出`app store 的 ipa`?包泞歉。通過(guò)`Application Loader 等方式`提交到App store等待蘋果處理二進(jìn)制包逼侦,處理完后選擇構(gòu)建版本,最后提交等待蘋果審核腰耙。
**無(wú)論**打測(cè)試包提供測(cè)試人員測(cè)試還是打正式包上傳到App strore榛丢,整個(gè)過(guò)程都是重復(fù)耗費(fèi)人工的操作,需要人工等待挺庞,然后各種點(diǎn)擊選擇…我們可以通過(guò)編寫腳本語(yǔ)言來(lái)實(shí)現(xiàn)整個(gè)過(guò)程晰赞。
配置自動(dòng)打包發(fā)布的流程
通過(guò)下面幾步的設(shè)置好之后,以后再進(jìn)行打包發(fā)布到第三方平臺(tái)或者App Store 只需要一步就能搞定了选侨,So easy,too happy!
本人通過(guò)`shell腳本`實(shí)現(xiàn)從`archive->生成ipa->上傳到第三方平臺(tái)(Fir.im 掖鱼、蒲公英)或 App store`。通過(guò)下面幾步即可實(shí)現(xiàn)自動(dòng)打包上傳功能援制。
下面通過(guò)實(shí)例詳細(xì)演示整個(gè)過(guò)程
第一種:打包上傳到第三方平臺(tái)Fir (上傳蒲公英原理一樣)
第二種:打包上傳到App store
準(zhǔn)備工作:
因?yàn)橐蟼鞯紽ir平臺(tái)戏挡,需要先安裝fir-cli
如果沒(méi)有安裝過(guò)rvm,需要安裝rvm晨仑,在終端輸入rvm -v命令查看,如果打印出rvm:command not found說(shuō)明沒(méi)有安裝過(guò)rvm褐墅,如果能打印出rvm版本等信息說(shuō)明安裝過(guò)。如果沒(méi)有安裝過(guò)rvm可以通過(guò)下面的命安裝洪己,如果已經(jīng)安裝過(guò)可以忽略妥凳。
沒(méi)有安裝的話,方法如下:
在終端輸入 curl -L get.rvm.io | bash -s stable ,然后稍等一會(huì)rvm就安裝好了
在終端輸入 source ~/.bashrc
在終端輸入 source ~/.bash_profile
再輸入rvm -v查看安裝成功
1答捕、下載shell 文件
下載地址:
2逝钥、將shell-中的3個(gè)文件拖入工程的根目錄
3、根據(jù)自己需求選擇好描述文件
4噪珊、根據(jù)自己的項(xiàng)目修改一下shell.sh ((下載完之后晌缘,打開(kāi)shell.sh文件,command +F搜索XXX齐莲,將XXX根據(jù)注視替換成自己項(xiàng)目對(duì)應(yīng)的東西))
5痢站、cd到工程根目錄,通過(guò)./shell.sh 執(zhí)行腳本即可
輸入1或者2选酗,選擇是打hoc包還是release包阵难,這里選擇打hoc包,按下回車芒填,就不用管了呜叫,它會(huì)自動(dòng)打包并上傳到fir.im,上傳完成的話直接去fir.im去查看就行了。
以上就算介紹完了殿衰,
常見(jiàn)錯(cuò)誤:
1朱庆、錯(cuò)誤一
解決方法:在終端 輸入rvm system后重新執(zhí)行sehll腳本就可以了
2、如果前面已經(jīng)安裝過(guò)fir-cli闷祥,但是在腳本執(zhí)行過(guò)程中任然報(bào)fir:command not found的錯(cuò)誤?
解決辦法: 在終端輸入rvm get head?
執(zhí)行完畢后再次執(zhí)行腳本就ok了?