自動化打包ipa并上傳到fir或App Store

本文的目的是通過簡單的幾句命令行艰垂,實現(xiàn)自動編譯柔纵,打包并上傳到蒲公英分發(fā)給測試人員使用,或者上傳到App Store簡化上線發(fā)布的流程柬姚。

在執(zhí)行腳本之前需要做的三件事

(如果之前安裝過rvm郁轻、ruby可直接跳過1,2步笑旺,直接進行3,4步即可)

1.安裝rvm

rvm是一個便捷的多版本ruby環(huán)境的管理和切換工具 官網(wǎng):https://rvm.io/
(1).打開終端
輸入:curl -sSL https://get.rvm.io | bash -s stable

(2).載入rvm環(huán)境
輸入:source ~/.rvm/scripts/rvm

(3).修改rvm下載ruby的源昼浦,到ruby china的鏡像
輸入:echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/db

(4).檢查一下是否安裝正確
輸入:rvm -v
//如果打印出了rvm的版本號,則表示安裝正確

2.安裝ruby

(1).列出ruby可安裝的版本信息
輸入:rvm list known

(2).安裝一個ruby版本
輸入:rvm install 2.4.0

(3).如果想設置為默認版本筒主,可以用這條命令來完成
輸入:rvm use 2.4.0 --default

(4).檢查ruby版本是否正確
輸入:ruby -v

3.安裝fir-cli插件

輸入: gem install fir-cli

4.開始做關于腳本的事情了

(1).下載腳本scripts
腳本地址為:https://github.com/wangxj4268/TestDemo.git
image
(2).將腳本拖入工程目錄下
腳本路徑:/Users/xxx/Desktop/項目名稱/scripts
image
(3).配置腳本
1.如果是打development包关噪,則需要配置:xcodebuild_dev_config.sh文件中的以下4項:
- target_name="工程名.xcodeproj" # 有效值 ****.xcodeproj / ****.xcworkspace (cocoapods項目)
- project_name="工程名" # 工程名
- work_type="依據(jù)實際情況來填寫" # 有效值 project / workspace (cocoapods項目)
- api_token="依據(jù)實際情況來填寫" # fir token
image
同時還需要配置xcodebuild_dev_config.plist中4個的參數(shù):
- teamId:根據(jù)實際的開發(fā)者賬號來填寫
- method:development(枚舉值有4個:app-store、ad-hoc物舒、enterprise色洞、development)
- provisioningProfiles中需要配置項目的build id(當初我只配置了profile證書名稱而沒有填寫build id,不知道鼓搗了好久冠胯,才在第二天早上才如夢初醒的)
- provisioningProfiles中還需要配置profile文件名稱
image
2.如果是打distribution包火诸,參數(shù)配置和development中的差不多,只是需要注意plist文件中的profile文件名稱需要替換成distribution下的
#如果需要上傳到蒲公英上荠察,則需要打開.sh文件中的:
fir p ${out_path}/$project_name.ipa -T $api_token -c 發(fā)布release版本

#如果是需要上傳到App Store中去置蜀,則需要打開.sh文件中的:
# 將-u 后面的XXX替換成自己的AppleID的賬號,-p后面的XXX替換成自己的密碼
altoolPath="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
"$altoolPath" --validate-app -f ${out_path}/$project_name.ipa -u xxxxxx@qq.com -p xxxxxx -t ios --output-format xml
"$altoolPath" --upload-app -f ${out_path}/$project_name.ipa -u  xxxxxx@qq.com -p xxxxxx -t ios --output-format xml
image
(4).開始執(zhí)行腳本
1.首先定位到腳本所在的位置
輸入:cd /Users/xxx/Desktop/項目名稱/scripts

2.開始執(zhí)行腳本
#如果是development下的包
輸入:bash -l ./xcodebuild_dev_config.sh
#如果是distribution下的包
輸入:bash -l ./xcodebuild_dis_config.sh

3.靜靜的等待終端刷進度悉盆,然后就能成功

5.題外話:希望踩過的坑別人不要再踩了

當初我自己對照著別人的代碼實現(xiàn)這個功能時盯荤,遇上了很多的問題
1.報錯error: archive not found at path '/Users/xxx/Desktop/項目名稱/xcode_build_ipa_dev/2018-05-30-16-16-11/XKSDeliver.xcarchive
后來發(fā)現(xiàn)是.sh文件中的代碼有問題,應該是工程名.xcarchive文件而不應該是XKSDeliver.xcarchive焕盟,因為archive出來的文件是$project_name.xcarchive秋秤,而exportArchive時查找的是XKSDeliver.xcarchive,所以就會發(fā)生找不到文件路徑的問題

2.報錯error: exportArchive: "xxx.app" requires a provisioning profile
后來發(fā)現(xiàn)是plist文件中只配置了三個參數(shù):teamId脚翘、method灼卢、profile文件名稱而忘記了配置build id,等我第二天才發(fā)現(xiàn)這個問題所在(ps:這個純屬我自己眼睛有問題了来农,原樓主的:your build id一直在plist里面鞋真,但是我就是沒有填...不說了,都是淚)

3.報錯Gem::ConflictError...Unable to activate fir-cli-1.6.8, because CFPropertyList-3.0.0 conflicts with...
應該是fir-cli與ruby的版本有沖突了沃于,所以后來我重新安裝了rvm涩咖、ruby海诲、fir-cli才解決,我最終的版本是:
rvm 版本1.29.3 
ruby版本ruby 2.4.0p0,之前mac上的是2.3.0檩互,我重新安裝了ruby特幔,并設置了2.4為默認版
fir-cli版本 1.6.8

=============2018-12-06日更新=============
4.項目名稱不能帶有空格,如:weixin 2這種(因為復制一個工程時盾似,文件夾名稱重復了敬辣,系統(tǒng)會自動在后面跟上一個序號,這時打包就不成功)

參考:

MAC_Ruby 安裝(http://www.reibang.com/p/c073e6fc01f5

fir自動打包腳本--iOS(http://www.reibang.com/p/af8b929c6624

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末零院,一起剝皮案震驚了整個濱河市溉跃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌告抄,老刑警劉巖撰茎,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異打洼,居然都是意外死亡龄糊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門募疮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炫惩,“玉大人,你說我怎么就攤上這事阿浓∷拢” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵芭毙,是天一觀的道長筋蓖。 經(jīng)常有香客問我,道長退敦,這世上最難降的妖魔是什么粘咖? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮侈百,結果婚禮上瓮下,老公的妹妹穿的比我還像新娘。我一直安慰自己钝域,他們只是感情好讽坏,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著网梢,像睡著了一般震缭。 火紅的嫁衣襯著肌膚如雪赂毯。 梳的紋絲不亂的頭發(fā)上战虏,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天拣宰,我揣著相機與錄音,去河邊找鬼烦感。 笑死巡社,一個胖子當著我的面吹牛,可吹牛的內容都是我干的手趣。 我是一名探鬼主播晌该,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绿渣!你這毒婦竟也來了朝群?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤中符,失蹤者是張志新(化名)和其女友劉穎姜胖,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淀散,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡右莱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了档插。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慢蜓。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖郭膛,靈堂內的尸體忽然破棺而出晨抡,到底是詐尸還是另有隱情,我是刑警寧澤饲鄙,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布凄诞,位于F島的核電站,受9級特大地震影響忍级,放射性物質發(fā)生泄漏帆谍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一轴咱、第九天 我趴在偏房一處隱蔽的房頂上張望汛蝙。 院中可真熱鬧,春花似錦朴肺、人聲如沸窖剑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽西土。三九已至,卻和暖如春鞍盗,著一層夾襖步出監(jiān)牢的瞬間需了,已是汗流浹背跳昼。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肋乍,地道東北人鹅颊。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像墓造,于是被迫代替她去往敵國和親堪伍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容