項目中經常會進行打包分發, 但是常規的打包過程不免會非常的乏味無聊, 重復性的勞動, 實在沒啥意思, 今天就來介紹fastlane工具進行iOS自動打包, 上傳蒲公英(也可以firim)并進行釘釘群組通知.
- 首先安裝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命令, 進行自動打包上傳.
我也是邊學邊查邊實踐的, 本文只是給出我自己實踐的一些經驗, 希望對你有用.