場(chǎng)景
- 我們公司發(fā)布新版本App時(shí)繁成,需要多個(gè)崗位參與:開發(fā)負(fù)責(zé)打包,測(cè)試負(fù)責(zé)驗(yàn)證淑玫,開發(fā)上傳IPA巾腕,運(yùn)營(yíng)負(fù)責(zé)一些描述文案、預(yù)覽圖絮蒿,ASO負(fù)責(zé)關(guān)鍵字等等。
- 公司中一個(gè)iOS開發(fā)需要負(fù)責(zé)多個(gè)App。
因此壹甥,當(dāng)多個(gè)App同時(shí)需要發(fā)布新版本時(shí)濒憋,常常瓶頸會(huì)卡在開發(fā)打包和上傳IPA上。
不能將上傳IPA交給其他部門做,是因?yàn)樯蟼餍枰褂肕ac電腦冀泻,公司不能給每個(gè)App團(tuán)隊(duì)的運(yùn)營(yíng)或者測(cè)試人員配Mac來(lái)上傳IPA常侣。
不能將打包交給其他部門做,是因?yàn)槠渌藳]有代碼工程和Mac電腦進(jìn)行打包弹渔。
為了解決這些問題胳施,我們使用一臺(tái)Mac作為服務(wù)器,做了一個(gè)CI系統(tǒng)解決了IPA的打包和分發(fā)肢专,測(cè)試和運(yùn)營(yíng)人員只需要在web頁(yè)面上點(diǎn)擊按鈕就能得到對(duì)應(yīng)項(xiàng)目的IPA包和安裝的二維碼舞肆。接下來(lái)需要解決上傳IPA的問題。
準(zhǔn)備
altool
工具路徑
/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool
可以在~/.bash_profile
中設(shè)置別名博杖,以省去每次輸入這么一長(zhǎng)串路徑的麻煩:
alias altool='/Applications/Xcode8.1.app/Contents/Applications/Application\ Loader.app/Con tents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool'
source ~/.bash_profile
1. 驗(yàn)證IPA
altool -v -f /Users/kimilin/Downloads/test.ipa -u example@test.com -p YourPassword -t ios
成功結(jié)果:
No errors validating archive at /Users/kimilin/Downloads/test.ipa
錯(cuò)誤結(jié)果:
*** Error: Unable to validate archive '/Users/kimilin/Downloads/BoHong.ipa':
(
"Error Domain=ITunesConnectionOperationErrorDomain
UserInfo={
NSLocalizedRecoverySuggestion=Unable to process app at this time due to a general error,
NSLocalizedFailureReason=iTunes Store operation failed.
}"
...
)
也可以在命令最后加上--output-format xml
椿胯,可以獲得Plist形式的輸出。
2. 上傳IPA
altool --upload-app -f /Users/kimilin/Downloads/test.ipa -t ios -u example@test.com -p YourPassword
成功輸出:
No errors uploading '/Users/kimilin/Downloads/test.ipa'
3. Apple文檔:
http://help.apple.com/itc/apploader/#/apdATD1E53-D1E1A1303-D1E53A1126
我們將上傳也整合到CI系統(tǒng)中剃根,現(xiàn)在整個(gè)發(fā)布流程已經(jīng)無(wú)需開發(fā)參與压状,開發(fā)可以更專注于開發(fā)任務(wù)本身了。整合后的發(fā)布新版本流程是:
- 測(cè)試在web頁(yè)面上打包對(duì)應(yīng)App的IPA包跟继,通過掃描二維碼安裝到測(cè)試機(jī)种冬。
- 測(cè)試驗(yàn)證通過,在web上點(diǎn)擊上傳舔糖,將IPA上傳到iTunes Connect上
- 運(yùn)營(yíng)填寫新版本信息娱两,提交審核。