iOS自動(dòng)打包

目錄

一. 打包原理

二. Jenkins自動(dòng)打包

??1. Jenkins安裝與配置
???1.1 安裝
???1.2 配置
????1.2.1 打包相關(guān)插件
????1.2.2 Keychains配置
????1.2.3 任務(wù)配置
??2. 自動(dòng)上傳托管平臺(tái)
??3. 郵件通知

三. Jenkins權(quán)限管理

四. 可能會(huì)碰到的一些問(wèn)題



一.打包原理

xcode正常打包過(guò)程是需要編譯、歸檔和導(dǎo)出稼钩,這都依賴于自帶的工具成榜,所以了解這些工具的使用是很有必要的水慨。

建議先看看APP編譯工具鏈

這里介紹一下xcode最重要的一個(gè)工具xcodebuild蜜自。

  • xcodebuild 可以通過(guò)配置相關(guān)參數(shù)來(lái)編譯和導(dǎo)出ipa包
命令名稱 描述
-usage 查看xcodebuild簡(jiǎn)潔的用法
-help 查看幫助
-project 編譯項(xiàng)目名稱
-target 編譯目標(biāo)名稱
-workspace 工作空間名稱
-scheme 編譯scheme名稱
-configuration 為構(gòu)建每一個(gè)目標(biāo)使用build配置名稱
-sdk 使用指定的SDK編譯項(xiàng)目
-toolchain 使用工具鏈與標(biāo)識(shí)或名稱
-showsdks 顯示已安裝的SDK的列表
-list 列出了在一個(gè)工作空間中的一個(gè)項(xiàng)目的目標(biāo)和配置,或方案
-archivePath 歸檔將被放置的目錄
-exportArchive 制定的歸檔導(dǎo)出路徑

我們可以用以上命令來(lái)走一遍正常的打包流程(此處證書為自動(dòng)管理)
編譯:

xcodebuild -workspace "" -scheme "" -configuration ""

-workspace編譯基于 xcworkspace
-scheme 編譯工程名
-configuration 編譯環(huán)境 Debug Release

歸檔:

xcodebuild -workspace "" -scheme "" -configuration "" -archivePath "" archive

archivePath 歸檔路徑

導(dǎo)出:

xcodebuild -exportArchive -archivePath "" -exportPath "" -exportOptionsPlist ""

exportArchive 聲明導(dǎo)出
exportPath 包導(dǎo)出路徑
exportOptionsPlist 導(dǎo)出配置

通過(guò)以上命令舟舒,我們其實(shí)可以直接寫成腳本來(lái)自動(dòng)化執(zhí)行(腳本打包)怠噪,但是如果我們采用jenkins方案來(lái)打包,你會(huì)發(fā)現(xiàn)碌嘀,其實(shí)還可以更簡(jiǎn)單涣旨,更人性化。

二.Jenkins自動(dòng)打包

1.Jenkins安裝與配置

1.1 安裝

homebrew是osx系統(tǒng)自帶的軟件管理工具股冗,我們可以通過(guò)它在終端直接安裝霹陡。
安裝命令:

brew install Jenkins

啟動(dòng)命令:

jenkins

注意啟動(dòng)后終端窗口不要關(guān)閉,否則jenkins服務(wù)會(huì)停止。

如果一切順利烹棉,打開(kāi)瀏覽器輸入:http://localhost:8080/
在打開(kāi)jenkins的時(shí)候攒霹,會(huì)讓你輸入在安裝的時(shí)候生成的password, 如果沒(méi)有保存就根據(jù)提示到對(duì)應(yīng)文件下拷貝,完成之后開(kāi)始安裝對(duì)應(yīng)插件浆洗,建議推薦的插件都安裝(有些關(guān)聯(lián)功能需要催束,如郵箱)。

之后便是開(kāi)始創(chuàng)建用戶

注冊(cè)成功后伏社,我們還需要對(duì)Jenkins做一系列的相關(guān)配置抠刺。

1.2 配置

1.2.1 打包相關(guān)插件

Keychains and Provisioning Profiles Management (本地keychain和iOS證書管理)
Xcode integration (用于xcode構(gòu)建)

打開(kāi)Jenkins管理->插件管理,搜索對(duì)應(yīng)插件下載安裝即可.
網(wǎng)上提供有兩種安裝方式:
方案一:選擇搜索插件名摘昌,勾選安裝
方案二:去Jenkins-plug官網(wǎng)下載插件矫付,然后選高級(jí),上傳.hpi文件.

1.2.2 Keychains配置

打開(kāi)Jenkins管理->配置文件管理
這里需要上傳login.keychain文件第焰,該文件獲取方法买优,在終端中輸入

cd ~/Library/Keychains

鍵入ls見(jiàn)下圖

keychains.png

這里需要上傳login.keychain文件,在新版本的xcode中只有l(wèi)ogin.keychain-db文件挺举,這邊直接拷貝一份出來(lái)杀赢,去掉右后,然后上傳即可湘纵。

Password 開(kāi)機(jī)密碼
Identities 要配置證書的完整名稱
Provisioning Profiles 證書配置文件的路徑 (注意用戶名要替換掉)

keychains配置.png

1.2.3 開(kāi)始任務(wù)配置

上面的所有配置完成后脂崔,我們就可以新建任務(wù)了,選自由風(fēng)格任務(wù),就會(huì)有如下6項(xiàng)相關(guān)配置:


job_config.png
  • General 主要配置一些構(gòu)建版本的相關(guān)策略
  • 源碼管理 主要是管理代碼源梧喷,可選git或svn,需要相關(guān)配置
  • 構(gòu)建觸發(fā)器 配置版本構(gòu)建的觸發(fā)策略
  • 構(gòu)建環(huán)境 配置Keychains
  • 構(gòu)建 配置打包環(huán)境砌左、包名、輸出路徑
  • 構(gòu)建后操作 配置構(gòu)建成功后的處理(這里需要先去配置上傳托管平臺(tái)铺敌、郵件
    job_config_0.png

    job_config_1.png

    job_config_2.png

    job_config_3.png

    job_config_4_0.png

    job_config_4_1.png

    job_config_4_2.png

    job_config_5_0.png

    job_config_5_1.png

    job_config_5_2.png

以上全部配置完后點(diǎn)保存汇歹,便可以開(kāi)始使用了

最后放一個(gè)打包完,自動(dòng)上傳并郵件通知的截圖


job_email_result.png

2.自動(dòng)上傳托管平臺(tái)

首先需要安裝對(duì)應(yīng)托管平臺(tái)的插件,我們平常用的fir和pgyer官網(wǎng)上都有對(duì)應(yīng)的Jenkins插件,
下載對(duì)應(yīng)的插件偿凭,然后到Jenkins管理->插件管理->高級(jí) 上傳插件即可.
上傳后可在任務(wù)配置中選擇要上傳的平臺(tái)产弹。

job_plugin.png

3.郵件通知

首先我們到Jenkins管理->系統(tǒng)配置,在下面可以配置相關(guān)的郵件地址和內(nèi)容

job_email_0.png

job_email_1.png

job_email_2.png

job_email_3.png

保存 over.

三.Jenkins權(quán)限管理

如果需要對(duì)不同項(xiàng)目和用戶進(jìn)行權(quán)限管理弯囊,則需要安裝插件Role-based Authorization Strategy

四.可能會(huì)碰到的一些問(wèn)題

1.找不到xcodebuild命令痰哨,可能是安裝了多個(gè)版本的xcode,最后導(dǎo)致指向路徑不對(duì),可通過(guò)下面進(jìn)行配置


xcodebuild_0.png

或直接用xcode-select命令去指向

  • xcode-select -p 查看xcode指向路徑
  • xcode-select -s 切換指定的路徑

2.Archive成功,export ipa文件時(shí)失敗,報(bào)以下錯(cuò)誤:error: exportArchive: The data couldn’t be read because it isn’t in the correct format

  • jenkins在導(dǎo)出包的時(shí)候匾嘱,好像不支持bitcode斤斧,這里需要在jenkins配置,構(gòu)建里邊取消bitcode(有知道不用的取消的還請(qǐng)告知)霎烙。

參考

  1. xcode編譯
  2. ToolChain
  3. xcodebuild命令
  4. iOS-自動(dòng)化打包方案
  5. 使用jenkins實(shí)現(xiàn)xcode自動(dòng)打包
  6. Xcode 編譯工具鏈
  7. Jenkins針對(duì)不同項(xiàng)目組用戶權(quán)限分配
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撬讽,一起剝皮案震驚了整個(gè)濱河市蕊连,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锐秦,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗忱,死亡現(xiàn)場(chǎng)離奇詭異酱床,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)趟佃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門扇谣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人闲昭,你說(shuō)我怎么就攤上這事罐寨。” “怎么了序矩?”我有些...
    開(kāi)封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵鸯绿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我簸淀,道長(zhǎng)瓶蝴,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任租幕,我火速辦了婚禮舷手,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劲绪。我一直安慰自己男窟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布贾富。 她就那樣靜靜地躺著歉眷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颤枪。 梳的紋絲不亂的頭發(fā)上姥芥,一...
    開(kāi)封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音汇鞭,去河邊找鬼凉唐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛霍骄,可吹牛的內(nèi)容都是我干的台囱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼读整,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼簿训!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤强品,失蹤者是張志新(化名)和其女友劉穎膘侮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體的榛,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡琼了,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夫晌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雕薪。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖晓淀,靈堂內(nèi)的尸體忽然破棺而出所袁,到底是詐尸還是另有隱情,我是刑警寧澤凶掰,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布燥爷,位于F島的核電站,受9級(jí)特大地震影響懦窘,放射性物質(zhì)發(fā)生泄漏局劲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一奶赠、第九天 我趴在偏房一處隱蔽的房頂上張望鱼填。 院中可真熱鬧,春花似錦毅戈、人聲如沸苹丸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赘理。三九已至,卻和暖如春扇单,著一層夾襖步出監(jiān)牢的瞬間商模,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工蜘澜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留施流,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓鄙信,卻偏偏與公主長(zhǎng)得像瞪醋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子装诡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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