iOS一鍵自動編譯打包提交

一、前言

在開始之前先嘮叨兩句自己對iOS自動化打包的接觸,覺得沒啥看頭滴老鐵可以略過直接從第二部分開始。項目自動打包提交的優(yōu)勢不用說了,很高效便捷的東西,很早就接觸到了,但是一直沒有用到項目中,分析一下主要有以下幾個原因:

  • 項目不是很大很雜。
  • 協(xié)同開發(fā)的人員也不多。
  • 新開項目或新加某個業(yè)務(wù)功能,一般都是把整個功能做完再進行測試,不需要反復(fù)打包。
  • 測試人員不多,用Xcode可以直接快速給測試設(shè)備裝好新包。

總結(jié)以上原因,一直沒有用到自動打包技術(shù)。而現(xiàn)在的情況是,

  • 隨著項目功能模塊不斷增加,即使發(fā)包不頻繁,每次發(fā)包到AppStore,從選擇簽名證書、配置文件(現(xiàn)在有Xcode自動管理,這一步可以省略)、編譯歸檔、導出、上傳等至少也得一個小時,還需要一直盯著。再者,由于蘋果的審核很嚴,每次拒過都需要改一點代碼再重新構(gòu)建新包發(fā)布,又會重復(fù)上面的痛苦過程。
  • 蘋果手機系統(tǒng)更新頻繁,每次推出新系統(tǒng),同事會情不自禁安裝最新的系統(tǒng),這個時候,低版本的Xcode給手機刷不了,又得更新Xcode。
  • 前段時間公司又新開了兩個項目,洋洋灑灑兩個月做完了,也該測試了,可是打測試包一直不成功,Xcode 9.0以前的版本卻沒問題,后面想到用自動打包來試試,自動打包也完全OK。

基于以上的情況,所以想自己寫一個自動打包的腳本,能夠?qū)崿F(xiàn)只運行一句命令就自動編譯打包發(fā)布,啥都不要做,掛著就行,打包完自動打開頁面提醒。

二、功能概述

  • 支持多個Target的項目構(gòu)建。
  • 發(fā)布平臺:AppStore、蒲公英、fir
  • 項目類型:支持project和workspace項目。
  • 支持一鍵構(gòu)建并發(fā)布Debug包到蒲公英平臺。

三、使用

打包所需要的文件已經(jīng)掛在Github上了。只需要把BuildTool文件夾復(fù)制項目主目錄,注意是復(fù)制!不是拖入項目主目錄,因為蘋果審核有屏蔽fir關(guān)鍵詞。然后打開終端,cdBuildTool文件夾,輸入 sh build.sh 命令,回車,開始執(zhí)行此打包腳本。

1. build.sh腳本

具體的使用方法和參數(shù)配置shell腳本里面已經(jīng)有非常詳細的注釋。

2. .plist文件

AppStoreExportOptions.plistAdHocExportOptions.plist 兩個plist文件,分別對應(yīng)發(fā)布到AppStore和AdHoc(蒲公英、fir)。簡單說一下里面的屬性:

image.png

沒有注釋的屬性項,根據(jù)項目情況自行設(shè)置,一般不需要更改。配置文件(provisioningProfiles)可以添加多個,主要是針對項目中存在多個Target時情況,每個Target的BundleID也會不一樣,所以也需要對應(yīng)的證書和配置文件來跟Target匹配,如果只有一個Target不需要管。

四、推薦內(nèi)容

寫完腳本后,發(fā)現(xiàn)已經(jīng)有老鐵對打包腳本做了很詳細的分析了:詳解Shell腳本實現(xiàn)iOS自動化編譯打包提交。也有老鐵早就寫了iOS自動打包的腳本:xcode_shell

看了一下,功能也比較全,比如上傳包到自己的服務(wù)器、上傳完成發(fā)郵件測試人員。但是現(xiàn)在已經(jīng)有第三方平臺也做到了比這更多的功能,比如蒲公英,還可以手機短信通知測試人員,有專門的頁面外鏈,支持持續(xù)集成等。

老鐵們?nèi)绻€有什么建議,歡迎在下面給我留言或私信。?? ?? ??

五、問題

問題一(更新于2018年11月14日):

升級Xcode 10以上版本,蘋果采用新的構(gòu)建系統(tǒng),之前的xcodebuild clean命令已經(jīng)無法使用,如果用這個命令的話會報錯,蘋果給的建議是刪除根目錄下的build目錄文件夾,刪除就可以完整打包了。但是每次打包都需要再刪除一遍,由于這個目錄的主要作用就是存儲該項目的歷史構(gòu)建包(Archive歸檔文件和iPA包),所以解決辦法是:

    1. 建一個其他名字的文件夾用來存儲項目的歷史構(gòu)建包(目前本腳本添加的文件夾名為BuildDir),然后將原來build文件夾里面的IPADir文件夾XcarchiveDir文件夾移到BuildDir文件夾中。
    1. 刪除build文件夾
    1. 直接找到腳本里面的所有/build/,替換為/BuildDir/即可。

參考資料:build_system_release_notes_for_xcode_10

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370