iOS自動整合打包釋出
一:前言
作為一個iOS開發者,在每期需求開發完畢,要給測試打包測試,改個問題打個包,一天打個一兩個還可以接受,一天打十幾個包,著實有點煩,這兩天比較閒,很早就知道自動打包,但是一直懶得學,導致拖了這麼就才搞定自動打包,用了以後發現兩個字得勁,廢話不多說直接上乾貨!因為初次接觸可能不夠全面,有不對或者不全面還望大家補充!
首先來介紹一個工具自動打包全靠它
-
Fastlane
Fastlane是ruby指令碼自動化構建工具(完整解決測試和釋出流程)功能相當強大,
包含了和ipa相關的所有功能,例如打包、提交稽核、測試、自動截圖等等。這裡就主要介紹一下其中的打包工具gym。
支援平臺:iOS、Android 官方地址:
- 首先是Fastlane 的安裝 使用gem 安裝 如何沒有gem環境的自行百度安裝gem環境
gem install fastlane 或者 sudo gem install fastlane
- 使用FastLane的gym工具
在安裝Fastlane的時候預設已經安裝了常用的工具,所以另外不需要在安裝gym工具了,只需要直接使用gym打包就可以了,在呼叫gym的時候需要cd到專案目錄,然後執行:
fastlane gym
這個命令是自動打包然後推送到ITunesConnect中,在這個過程中需要輸入AppId及密碼。
如果只是想到處ipa包的直接執行下邊的命令
fastlane gym --export_method ad-hoc
然後去你當前工程目錄下檢視生成的ipa包
- 使用Fir.im平臺釋出測試包
基於上邊你到處的ipa包你想上傳到fir平臺
你需要安裝 fir-cli同樣使用gem 安裝
gem install fir-cli
安裝後可以先執行登陸操作,登陸後在後續操作中可以不用重複新增token了(token需要到fir個人賬號中獲得),登陸方法:
fir login 123456
注:123456 代表你你的fir平臺Token
檢視Token方法登陸你fir平臺賬號後 點選你的個人資訊頭像會彈出API Token獲取即可
釋出ipa到fir,需要提前準備好ipa檔案,執行:
fir publish APP_FILE_PATH
注:APP_FILE_PATH 你ipa檔案路徑
- 實現自動化打包
為了實現一鍵打包的方案,需要將gym和fir結合到一起,這裡利用了一個指令碼檔案,在使用時直接執行這個指令碼檔案即可,檔案內容如下:
#!/bin/bash #設定超時
export FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT=120
#計時
SECONDS=0
#假設指令碼放置在與專案相同的路徑下
project_path=$(pwd)
#取當前時間字串新增到檔案結尾
now=$(date +"%Y_%m_%d_%H_%M_%S")
#指定專案的scheme名稱
scheme="Demo"
#指定要打包的配置名
configuration="Adhoc"
#指定打包所使用的輸出方式,目前支援app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method引數
export_method='ad-hoc'
#指定專案地址
workspace_path="$project_path/Demo.xcworkspace"
#指定輸出路徑
output_path="$project_path/IPA"
#指定輸出歸檔檔案地址
archive_path="$output_path/Demo_${now}.xcarchive"
#指定輸出ipa地址
ipa_path="$output_path/Demo_${now}.ipa"
#指定輸出ipa名稱
ipa_name="Demo_${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
fir publish ${ipa_path} -T "XXX_YOUR_API_TOKEN_XXX" -c "${commit_msg}"
#輸出總用時
echo "===Finished. Total time: ${SECONDS}s==="
(1、使用該檔案需要專案支援CocoaPods;2、本專案的專案名稱是Demo,在實際使用時需要將Demo替換成自己的專案名稱;3、需要將XXX_YOUR_API_TOKEN_XXX 換成自己的fir token)
cd 到你的工程目錄下
建立你的指令碼檔案
vim AutoPack.sh
執行後會自動打包,ipa檔案自動儲存到工程檔案同目錄下的IPA資料夾下,並且會自動提交到Fir上,整個流程執行結束後會提示完成時間,如出現錯誤也會列印出來
相關文章
- iOS自動構建打包釋出指令碼iOS指令碼
- ios打包釋出流程iOS
- iOS 自動打包匯出並安裝ipaiOS
- ReactNative專案自動化打包釋出React
- React Native專案自動化打包釋出React Native
- iOS自動化編譯打包iOS編譯
- iOS開發-自動打包神器iOS
- iOS自動化打包(fastlane使用)iOSAST
- iOS 本地自動打包工具iOS
- 用 GitHub Actions 自動打包釋出 Python 專案GithubPython
- 釋出nuget包的正確姿勢---cicd自動打包釋出nuget包
- 基於DotNetty實現自動釋出 - 實現一鍵打包釋出Netty
- appuploader iOS 應用自動釋出APPiOS
- iOS如何實現自動化打包iOS
- iOS —— 兩套自動打包指令碼iOS指令碼
- Python的iOS自動化打包PythoniOS
- iOS自動打包指令碼+自動上傳到firiOS指令碼
- GitLab整合kubernetes實現自動釋出Gitlab
- iOS自動化打包部署踩坑記iOS
- jenkins iOS自動化打包分發JenkinsiOS
- 使用Automator自動化iOS打包流程iOS
- Jenkins+Fastlane+自動化打包釋出+蒲公英二維碼展示JenkinsAST
- iOS--利用Fastlane實現自動化打包iOSAST
- 詳解iOS打包、釋出與證書體系iOS
- React Native釋出APP之打包iOS應用React NativeAPPiOS
- iOS 持續整合方案,傻瓜式一鍵全自動化打包、上傳!—— PythoniOSPython
- 阿里釋出AliOS助汽車智慧網聯整合移動端業務阿里iOS
- 利用 electron-builder 實現 electron app 的署名/打包/釋出以及自動更新UIAPP
- iOS 自動化釋出 Fastlane 本地構建 IPA 並分發iOSAST
- iOS 持續整合系列 - 自動化 Code ReviewiOSView
- iOS 持續整合系列 – 自動化 Code ReviewiOSView
- 關於iOS自動化打包的一些分享iOS
- 2023年最新iOS打包釋出流程彙總iOS
- windows右鍵選單自動打包釋出nuget,沒有CI/CD一樣方便!Windows
- 使用 Fastlane 實現 iOS 跟 Android 自動打包指令碼ASTiOSAndroid指令碼
- IOS-自動打包Shell指令碼(支援目錄帶空格)iOS指令碼
- QT如何打包釋出的QT
- 無釋出證書打包