iOS打包自動化實踐(二)

上一篇:iOS打包自動化實踐(一)

把打包項目遷移到Jenkins遠程機器上渠驼,并增加自動上傳發(fā)版文案的功能迷扇。

準(zhǔn)備工作

  1. 一臺遠程Mac機器,并在這臺CI機器上安裝Jenkins器一,具體安裝步驟見:Jenkins安裝祈秕。
  2. 遠程控制:Mac自帶遠程功能隘庄,使用十分簡單丑掺。遠程控制
  3. 在CI機器上安裝fastlane。
  4. 在CI機器上配置打包證書和描述文件街州。
  5. 在CI機器上跑一遍自動打包上傳腳本唆缴,確認機器配置沒有問題。

Jenkins配置

下載好jenkins的war包之后艳丛,在遠程機器的shell中執(zhí)行命令:

java -jar your/jenkins/path/jenkins.war --ajp13Port=-1 --httpPort=9090

命令執(zhí)行成功后氮双,在本地機器輸入CI機器的IP + 端口9090戴差,例如你的CI機器IP是192.168.1.1铛嘱,那么就在瀏覽器中輸入:192.168.1.1:9090墨吓。如果機器和Jenkins都配置好了,那么你就會看到如下頁面:


jenkins.png
  1. 首先:新建任務(wù)-構(gòu)建一個自由風(fēng)格的軟件項目,然后進入任務(wù)配置界面谐丢。
  2. 配置源碼:在"源碼管理"tab中選擇Git乾忱,然后填寫項目的Git地址(http),并配置Credentials(使用username和password即可)窄瘟。在"Branches to build"欄目中填寫需要build的分支名趟卸。
  3. 填寫構(gòu)建腳本:在"Execute shell"中,把上篇文章調(diào)試成功的shell腳本復(fù)制粘貼進去(注意:腳本默認目錄是項目根目錄)蹄葱,腳本如果之前寫了絕對路徑需要做一些修改图云,建議使用"pwd"命令獲取項目根目錄竣况,然后拼接相對路徑丹泉。

到這里項目的基本配置就結(jié)束了摹恨,build一下試試晒哄,順利的話就可以成功在Jenkins上完成自動打包和上傳工作了。

上傳發(fā)版文案功能

fastlane的deliver命令除了上傳IPA包勋陪,還有上傳icon诅愚,發(fā)版文案违孝,app信息等功能雌桑。這個功能的實現(xiàn)類似Git,需要首先把后臺的數(shù)據(jù)下載到本地校坑,然后修改需要修改的文件耍目,然后上傳即可邪驮。詳細步驟:

1毅访、 修改配置:

在Jenkins任務(wù)配置界面喻粹,選擇"General-參數(shù)化構(gòu)建過程-添加參數(shù)", 比如你的項目有簡體中文和繁體中文國際化語言,就添加兩個文本參數(shù)草巡,分別命名為release_notes_zhHans和release_notes_zhHant.


參數(shù)配置.png

保存配置守呜,任務(wù)的"Build"會變成"Build with Parameters", 點擊后界面如下:


參數(shù)化構(gòu)建摁.png

2、 在Execute shell中修改腳本:

在fastlane deliver命令之前增加以下命令。

#下載metadata弛饭, 包括icon(目前用不到)和各本地化發(fā)版文案。
fastlane deliver download_metadata\
    --username ${user_name}\
    --app_identifier ${bundle_id}\
    --force true
    
#簡中萍歉,繁中侣颂,發(fā)版文案路徑
zhHans_notes_path="./fastlane/metadata/zh-Hans/release_notes.txt"
zhHant_notes_path ="./fastlane/metadata/zh-Hant/release_notes.txt"

if [ -n "$release_notes_zhHans" ]; then
   echo "$release_notes_zhHans" > $zhHans_notes_path
fi

if [ -n "$release_notes_zhHant" ]; then
   echo "$release_notes_zhHant" > $zhHant_notes_path
fi

"fastlane deliver download_metadata"命令的作用是把目前iTunesConnect后臺的數(shù)據(jù)下載到本地,默認路徑是"./fastlane/metadata"枪孩。我們在"參數(shù)化構(gòu)建"中增加的參數(shù)可以在"Execute shell"中作為變量直接使用憔晒,因此"$release_notes_zhHans"和"$release_notes_zhHant"就能取到我們填寫的簡中和繁中發(fā)版文案,判斷不為空時蔑舞,使用"echo"命令把他們填寫在各自語言目錄下的release_notes.txt文件中即可拒担。

3、修改deliver命令:

刪掉skip_metadata參數(shù),即:

#上傳IPA到App Store Connect
fastlane deliver\
   --username ${user_name}\
   --app_identifier ${bundle_id}\
   --app  ${app_id}\
   --ipa ${ipa_path}\
   --skip_screenshots true\
   --app_version ${app_version}\
   --force true

這里的app_version也可以通過參數(shù)化構(gòu)建的方式添加參數(shù)掏婶,每次構(gòu)建之前填寫。
點擊某次構(gòu)建的"控制臺輸出"可以看到shell的輸出老厌。調(diào)試成功后拜隧,登錄iTunesConnect后臺垦页,如果發(fā)版文案被成功修改即說明此次自動化集成完美成功!


控制臺輸出.png

FAQ

1、拉取代碼失敗,提示:ERROR: Error fetching remote repo 'origin'

一般是填寫的帳號訪問Git倉庫的權(quán)限問題铣口。如果你的遠程CI機器上集成過別的項目,那么你需要查看CI機器的keychain,其中存放的gitlab帳號密碼是否有訪問你目前配置的這個項目的權(quán)限掏熬。因為在jenkins上配置Credentials時捆蜀,如果keychain中沒有帳號會添加你新配置的帳號誊薄,如果已經(jīng)有了不會配置新的。即jenkins會使用keychain中現(xiàn)有的帳號來拉取代碼。

寫在最后

下一篇文章會介紹如何優(yōu)化打包項目俏脊,包括自動獲取AppVersion认然,自動升build號,自動觸發(fā)構(gòu)建,配置自動發(fā)送郵件,定制郵件內(nèi)容等功能。

下一篇:iOS打包自動化實踐(三)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苏遥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞬矩,老刑警劉巖惭蹂,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氢伟,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門弃鸦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來购岗,“玉大人烹困,你說我怎么就攤上這事溶弟∏苋ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵咒林,是天一觀的道長欢瞪。 經(jīng)常有香客問我譬正,道長健民,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗦玖。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著墨辛,像睡著了一般太惠。 火紅的嫁衣襯著肌膚如雪敛纲。 梳的紋絲不亂的頭發(fā)上监嗜,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死其障,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播午笛,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了矫俺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丸卷,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡沐兰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了出革。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡渡讼,死狀恐怖骂束,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情成箫,我是刑警寧澤展箱,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站蹬昌,受9級特大地震影響混驰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜皂贩,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一栖榨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧明刷,春花似錦婴栽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焦匈。三九已至翩伪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捐顷,已是汗流浹背檬洞。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工狸膏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沟饥,地道東北人添怔。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像贤旷,于是被迫代替她去往敵國和親广料。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1 全局配置 1.1 Keychain全局配置 1.1.1配置Provisioning Profiles 1幼驶、將/...
    Kevin_Junbaozi閱讀 13,216評論 3 29
  • 身為iOS開發(fā)者經(jīng)常需要面對【打包】這么一個很耗時的問題艾杏,項目文件多的話每次打包時間都很久,更別提企業(yè)包還需要上傳...
    GrumpyMelon閱讀 2,015評論 0 8
  • 說到自動化打包, 相信大家在日常開發(fā)中都有所接觸, 尤其是在多分支并行開發(fā)的情況下, 自動化打包顯得尤為重要, 很...
    有涯逐無涯閱讀 771評論 0 0
  • 概述 持續(xù)集成是一種軟件開發(fā)實踐盅藻,即團隊開發(fā)成員經(jīng)常集成他們的工作购桑,通過每個成員每天至少集成一次畅铭,也就意味著每天可...
    paintingStyle閱讀 3,902評論 1 10
  • 中秋吟(一) 中秋佳節(jié), 無月可賞勃蜘, 聽風(fēng)看雨硕噩, 附庸風(fēng)雅, 吟詩幾首缭贡, 聊以怡情炉擅, 學(xué)疏才淺, 貽笑大方阳惹。 ——...
    sunnyma閱讀 341評論 0 1