fastlane實現自動化打包上傳測試平臺

weixin_34365417發表於2017-05-18

<a href="https://github.com/fastlane/fastlane">fastlane</a>是什麼?懶人的福利,實現各種自動化操作的工具。
<a href="https://github.com/fastlane/fastlane">fastlane</a>可以幹什麼?
Fastlane是用Ruby語言編寫的一套自動化工具集和框架,每一個工具實際都對應一個Ruby指令碼,用來執行某一個特定的任務,而Fastlane核心框架則允許使用者通過類似配置檔案的形式,將不同的工具有機而靈活的結合在一起,從而形成一個個完整的自動化流程。

首先看一下安裝步驟:
一步步走就好了
Fastlane入門:安裝篇

接下來進行簡單的使用,實現自動化打包並且釋出到相關的測試平臺
Fastlane入門:初級使用篇

整理的自動化打包的指令碼
關於這些工具的描述和使用可以看這裡:https://docs.fastlane.tools/actions/Actions/

#!/bin/bash

#計時
SECONDS=0

#假設指令碼放置在與專案相同的路徑下
project_path=$(pwd)
#取當前時間字串新增到檔案結尾
now=$(date +"%Y_%m_%d_%H_%M_%S")
#打包完成之後,儲存的地址,這裡選擇的是桌面
finalPath="/Users/morris/Desktop/newBag"
#希望得到的打包完成之後app的名稱
appName="你的app的名稱,最好不要用中文"

#指定專案的scheme名稱
scheme="當前專案對應的target的名稱"
#指定要打包的配置名
configuration="Adhoc"
#指定打包所使用的輸出方式,目前支援app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method引數
export_method='ad-hoc'

#蒲公英的key
PGY_User_Key="蒲公英的User_Key"
PGY_API_Key="蒲公英的API_Key"
#fir的token
fir_token="fir 的 token"



#指定專案地址
workspace_path="$project_path/$scheme.xcworkspace"
#指定輸出路徑
output_path="$finalPath/$appName_${now}"
#指定輸出歸檔檔案地址
archive_path="$output_path/$appName_${now}.xcarchive"
#指定輸出ipa地址
ipa_path="$output_path/$appName_${now}.ipa"
#指定輸出ipa名稱
ipa_name="$appName_${now}.ipa"
#獲取執行命令時的commit message
commit_msg="$1"

#輸出設定的變數值
echo "===workspace path: ${workspace_path}==="
echo "===archive path: ${archive_path}==="
echo "===ipa path: ${ipa_path}==="
echo "===export method: ${export_method}==="
echo "===commit msg: $1==="

#先清空前一次build
fastlane gym --workspace ${workspace_path} --scheme ${scheme} --clean --configuration ${configuration} --archive_path ${archive_path} --export_method ${export_method} --output_directory ${output_path} --output_name ${ipa_name}

#上傳到fir
# echo "================= 上傳到fir ================="
# fir publish ${ipa_path} -T "${fir_token}" -c "${commit_msg}"


echo "================= 上傳到蒲公英 ================="
curl -F "file=@${ipa_path}" -F "uKey=${PGY_User_Key}" -F "_api_key=${PGY_API_Key}" https://qiniu-storage.pgyer.com/apiv1/app/upload

#輸出總用時
echo "===Finished. Total time: ${SECONDS}s==="

你可以直接拷貝當前的指令碼放在當前專案的目錄下面。按照需求修改相關的引數。如果是普通的打包的話那就只需要修改這麼幾個引數就好了

#打包完成之後,儲存的地址,這裡選擇的是桌面
finalPath="/Users/morris/Desktop/newBag"
#希望得到的打包完成之後app的名稱
appName="你的app的名稱,最好不要用中文"

#指定專案的scheme名稱
scheme="當前專案對應的target的名稱"

#蒲公英的key
PGY_User_Key="蒲公英的User_Key"
PGY_API_Key="蒲公英的API_Key"
#fir的token
fir_token="fir 的 token"

build_using_gym.sh 指令碼的位置如圖:

2152217-c259da7cb6afbfa2.png
image.png

執行指令碼之前別忘記了修改指令碼的許可權:chmod 777 指令碼名

參考資料
Fastlane官網地址
Fastlane github地址看這裡
推薦幾篇介紹Fastlane的文章
fastlane 教程: 入門
使用fastlane實現iOS持續整合
使用fastlane gym/xctool編寫ipa打包指令碼
Fastlane自動化構建工具(完整解決測試和釋出流程)

相關文章