jenkins + fastlane 持續(xù)化集成交付檩奠、OTA分發(fā)

jenkins

項目中測試組專用服務器上安裝jenkins方便持續(xù)集成和交付翁锡。
jenkins是一個開源軟件項目蔓挖,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作馆衔,旨在提供一個開放易用的軟件平臺瘟判。安裝流程請戳

fastlane

簡單來說,以iOS應用發(fā)布流程為例,整個流程的各部分工作fastlane都能幫你完成角溃。

主要突出的幾個組件:

  • sigh:生成并下載開發(fā)者證書
  • produce:在iTunes Connector上創(chuàng)建你的應用
  • gym:打包你的應用
  • snapshot:實現(xiàn)應用截屏并取得圖片
  • pilot:將你的應用發(fā)布到TestFlight進行測試
  • deliver:將你的應用的二進制代碼,截屏和原數(shù)據(jù)等信息上傳到AppStore

環(huán)境

安裝fastlane

[sudo] gem install fastlane

命令行位置定位到目標Xcode項目根目錄拷获,然后執(zhí)行如下

fastlane init

然后會有一些選項和輸入項(AppId賬號密碼),按需輸入即可减细,會進行一些相關的初始化
完成后項目根目錄會生成一個fastlane文件夾,其中至少含有Appfile匆瓜,F(xiàn)astfile兩個關鍵文件:

Appfile:記錄你的項目,賬號等關鍵信息,如包名,Apple ID驮吱,Team ID等茧妒;
Fastfile:關鍵的操作文件。根據(jù)你自己的需求左冬,在其中定制自己的操作流桐筏;

Fastfile結(jié)構(gòu)

default_platform(:ios)
platform :ios do
  desc "Push a new build to TestFlight"
  lane :package do
    build_app(scheme: "FastlaneApp")
    upload_to_testflight
  end
end

fastlane的主要使用就是需要根據(jù)自己的需求定制自己的lane,lane里面加入各種各樣的action即可拇砰。
Fastfile編寫完畢后梅忌,使用fastlane + [lane名稱]即可執(zhí)行
使用終端定位到項目根目錄,執(zhí)行如下

fastlane [lane名稱],如:
fastlane package

在jenkins中配置fastlane命令


image.png

APP打包命令

使用xcodebuild命令打包ipa

sh "xcodebuild -exportArchive -archivePath #{archive_path}.xcarchive -exportPath #{archive_path} -exportOptionsPlist #{plist_path}"

使用gradle命令打包apk

gradle(
    task: "assemble",
    build_type: "Release",
    print_command: false,
    properties: {
      "tinkerEnable" => false,
      "android.injected.signing.store.file" => "#{real_store_file}",
      "android.injected.signing.store.password" => "#{store_password}",
      "android.injected.signing.key.alias" => "#{key_alias}",
      "android.injected.signing.key.password" => "#{key_password}",
    }
  )

OTA分發(fā)

上傳到fir.im

fir命令行安裝

[sudo] gem install fir-cli
sh "fir publish #{file_path} -T #{token} -c \"#{title}"

上傳到蒲公英

sh "curl -F \"file=@#{file_path}\" -F \"uKey=#{pgyerUKey}\" -F \"_api_key=#{pgyerApiKey}\" -F \"updateDescription=#{title}#" -F \"publishRange=2\" http://www.pgyer.com/apiv1/app/upload"

上傳到testflight

upload_to_testflight

參考文檔:
Fastlane官方網(wǎng)頁
Actions詳細列解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毕匀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子癌别,更是在濱河造成了極大的恐慌皂岔,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件展姐,死亡現(xiàn)場離奇詭異躁垛,居然都是意外死亡,警方通過查閱死者的電腦和手機圾笨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門教馆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人擂达,你說我怎么就攤上這事土铺。” “怎么了板鬓?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵悲敷,是天一觀的道長。 經(jīng)常有香客問我俭令,道長后德,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任抄腔,我火速辦了婚禮瓢湃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赫蛇。我一直安慰自己绵患,他們只是感情好,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布悟耘。 她就那樣靜靜地躺著藏雏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掘殴,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天赚瘦,我揣著相機與錄音,去河邊找鬼奏寨。 笑死起意,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的病瞳。 我是一名探鬼主播揽咕,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼套菜!你這毒婦竟也來了亲善?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤逗柴,失蹤者是張志新(化名)和其女友劉穎蛹头,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戏溺,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡渣蜗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旷祸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耕拷。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖托享,靈堂內(nèi)的尸體忽然破棺而出骚烧,到底是詐尸還是另有隱情,我是刑警寧澤闰围,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布止潘,位于F島的核電站,受9級特大地震影響辫诅,放射性物質(zhì)發(fā)生泄漏凭戴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一炕矮、第九天 我趴在偏房一處隱蔽的房頂上張望么夫。 院中可真熱鬧,春花似錦肤视、人聲如沸档痪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腐螟。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乐纸,已是汗流浹背衬廷。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留汽绢,地道東北人吗跋。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像宁昭,于是被迫代替她去往敵國和親跌宛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359