iOS fastlane 配合蒲公英打包, 并進行釘釘群組通知

項目中經常會進行打包分發, 但是常規的打包過程不免會非常的乏味無聊, 重復性的勞動, 實在沒啥意思, 今天就來介紹fastlane工具進行iOS自動打包, 上傳蒲公英(也可以firim)并進行釘釘群組通知.

  1. 首先安裝fastlane工具.
  • 使用gem 進行安裝, 安裝之前要確保自己電腦安裝了Xcode的命令行工具, fastlane的打包 是基于Xcode的一些命令進行打包.
xcode-select --install

安裝完成之后, 輸入命令 進行fastlane的安裝

sudo gem install fastlane -NV

中間可能會因為ruby的版本問題,導致安裝失敗, 那么就把ruby的版本升級到最新.

  • 也可以使用HomeBrew進行安裝, 首先在本地安裝HomeBrew工具, 可能需要翻墻或者更換成國內的下載鏡像, 這個方法可以自行google.
brew install fastlane

成功安裝好fastlane之后, 在terminal中進入到工程目錄, 進行fastlane的初始化

fastlane init

這個時候, 在工程目錄下會生成這么幾個文件


fastlane初始化

在Gemfile中, 我們需要把ruby的鏡像源改為國內的


修改ruby鏡像源

接下來我們需要下載蒲公英 或者 firim的插件, 為的是能夠在fastlane打包結束之后, 自動把ipa包上傳至蒲公英或者firim上.

fastlane add_plugin firim / fastlane add_plugin  pgyer

插件安裝成功之后, 就可以配置fastlane了, 點擊進入fastlane文件夾, 找到Fastfile文件, 雙擊打開.

default_platform(:ios)

projectName = "your project name"

platform :ios do
  desc "測試包"
  lane :Adhoc do
    # add actions here: https://docs.fastlane.tools/actions
    # 打包時間定義,格式化
    time=Time.new
    timeString = time.strftime("%Y-%m-%d_%H:%M:%S")
    # 構建
    build_app(scheme: "#{projectName}",
        export_method: "ad-hoc",
        output_directory: "~/desktop/package/#{projectName}/#{timeString}",
        output_name: "#{projectName}",
        configuration: "Debug",
        clean: false
        )
    pgyer(api_key: "xxxxxx",
        user_key:"xxxxxx",
        password: "123",
        install_type: "2",
        update_description: "內測版")
    # 釘釘發出提醒
    sh "./dingding.sh"

  end
end

Fastfile中 一些方法參數含義:
lane:  就是一個任務塊的意思, 上面的一個任務就是打ad-hoc包.
scheme: 工程中所選擇的scheme
export_method: 出包方法, 分別有`app-store` `ad-hoc` `package` `enterprise` `development` , 
output_directory: 打出ipa包 在本地存儲的位置
output_name: 工程名稱
configuration: 構建的環境變量, 分別可以是 `Debug` `Release`  `自定義`
clean: 打包前 是否對工程進行clean.
pgyer函數: 為蒲公英上傳函數, 參數api_key user_key可在蒲公英上面獲取. install_type: 表示 由密碼獲取安裝.

其中dingding.sh為自己根據釘釘api說明文檔自己編寫的自動發送群消息的腳本, 首先要設置釘釘機器人, 設置完成之后拿到機器人的hookwebUrl地址(參考釘釘說明文檔). dingding.sh內容如下:

time=$(date "+%Y-%m-%d %H:%M:%S")
#項目群通知
curl 'your robot hookweburl' \
    -H 'Content-Type: application/json' \
    -d '
{
    "msgtype": "markdown",
    "markdown": {
        "title":"Test 已打包上傳到蒲公英",
        "text":"**說明title  \n  > **下載鏈接**: https://www.pgyer.com/xxx  \n > **打包時間**: '"$time"',  \n  > 蒲公英安裝密碼 123"
    }
}'

以上如果都設置編寫沒問題的話, 就能夠在terminal中進入項目目錄下 執行fastlane命令, 進行自動打包上傳.
我也是邊學邊查邊實踐的, 本文只是給出我自己實踐的一些經驗, 希望對你有用.

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。