Shell自動打包腳本
網(wǎng)上的自動打包腳本都只是單方面的打包,沒有找到那種可以直接提交到FIr意蛀、蒲公英耸别、App Store的,而且也都是用的是xcrun打包的县钥,現(xiàn)在已經(jīng)不能用了秀姐,xcode9.0以后就只能使用xcodebulid打包了。然后就去研究了一下自動打包模式若贮。
我寫的這個自動打包腳本省有,暫時只適用于使用cocoapods管理的項目進(jìn)行自動打包,只要拿過去配置一下PackageConfigs.plist文件就可以進(jìn)行打包了谴麦,無需改腳本文件蠢沿,可以進(jìn)行一次性打包多target,可以自動提交到FIr匾效、蒲公英舷蟀、App Store三個平臺,想要提交到哪個平臺在PackageConfigs.plist配置一下那個平臺的信息就可以了面哼。
我已經(jīng)升級為了Xcode10和iOS12雪侥,親測全部打包成功并上傳到Fir、蒲公英精绎、App Store速缨,并且打出來的包App Store已經(jīng)審核通過。
首先代乃,在這里下載腳本: https://github.com/GuiLQing/Package.git旬牲。
然后直接將下載好的腳本文件夾放到項目的根目錄下
然后將需要進(jìn)行自動打包的項目的target配置好進(jìn)行一次手動打包,這里舉個例子吧搁吓,比如說我要打一個Release的上傳到App Store的包原茅,配置好證書,也可以選擇自動配置證書堕仔,然后將scheme改成Release模式擂橘,然后進(jìn)行手動打包,然后將包export導(dǎo)出摩骨,就會生成一個文件夾通贞,里面會有一個ExportOptions.plist文件朗若,把那個文件放進(jìn)腳本文件夾下的ExportOptions文件夾里面,然后改一下名稱昌罩,我這里是改成了XXX_Release哭懈,XXX_Release是我項目里面的target名。
拖進(jìn)ExportOptions文件夾并改名茎用,我的項目里面有三個target遣总,分別是XXX_Local,XXX_Release轨功,XXX_Test旭斥,所以我就對每個target分別進(jìn)行手動打包,并導(dǎo)出相對應(yīng)的ExportOptions.plist文件古涧,并且分別命名琉预。
這里還有一個最重要的,需要點擊Manage Schemes蒿褂,將項目需要打包的scheme勾選后面那個shared圆米,詳情看下圖:
前面的工作都做好了之后,以后就不需要再做前面的步驟了啄栓,剩下的就是PackageConfig.plist的修改了
可以看到娄帖,腳本打包文件夾內(nèi)還有一個PackageConfig.plist的文件,這個文件就是用來配置打包信息和上傳到平臺所需要的信息的維護(hù)了昙楚。
如果只有一個target近速,需要上傳到所有平臺,可以這樣配置
如果不需要上傳到任何平臺堪旧,把那些平臺信息都清空就好了削葱,或者是把那些update字段的key-value都刪除。
注意:這個PackageConfig.plist文件里的XXX_export_info對應(yīng)的value是ExportOptions文件夾里面的.plist打包配置文件名
PackageConfig.plist里面的key淳梦,只能改前面的Scheme名析砸,后面的_export_info、_export_mode爆袍、_update_app_store_username首繁、_update_app_store_password、_update_pgyer_u_key陨囊、_update_pgyer_api_key弦疮、_update_fir_token這種命名都是不能改的,如果改了就需要改腳本里面的對應(yīng)的命名了蜘醋,例如XXX_Release_export_info胁塞,只能改XXX_Release部分。
所有東西都改好了之后,點擊PackageScript這個exec文件就會開始打包了啸罢,生成的包會在Package文件夾下創(chuàng)建以Target命名的文件夾编检,包名生成規(guī)格會以Target拼接詳細(xì)時間生成。
PackageScript的exec文件是已經(jīng)賦予了權(quán)限的伺糠,可以直接雙擊運行的,PackageScript(備份).sh是備份出來的腳本文件斥季,如果有需要可以去修改训桶,然后重新賦予權(quán)限。
如果需要修改酣倾,就復(fù)制一份出來舵揭,將PackageScript(備份).sh更名為PackageScript.sh,然后修改好了之后躁锡,打開終端午绳,cd到當(dāng)前目錄下,輸入mv PackageScript.sh PackageScript映之,移除了.sh后綴拦焚,然后再輸入sudo chmod +x PackageScript,把移除后綴后的PackageScript文件轉(zhuǎn)為exec可執(zhí)行文件杠输。
如果需要研究.sh語法的赎败,可以打開PackageScript(備份).sh這個腳本文件看,都已經(jīng)寫好了注釋了蠢甲。
打包報錯問題羅列清單
1僵刮、如果打包的時候出現(xiàn)了下圖報錯內(nèi)容,說明是xcode升級之后鹦牛,不是系統(tǒng)默認(rèn)位置搞糕,需要修改打開命令行輸入sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
然后再進(jìn)行打包就OK了