腳本自動化打包

最近嘗試過自動化打包,之前有發過一篇Jenkins + SVN + Cocoapods 實現iOS自動化打包
關于自動化打包網上有很多教程,選擇自己需要的就行了,今天跟大家介紹下腳本自動化打包
fastlane gym
facebook xctool

使用fastlane gym打包

1.安裝gym

sudo gem istall gym

如果安裝出現Permition denied的提示

gem install -n /usr/local/bin gym

2.安裝fir-cli

gem install fir-cli

3.fastlanede 打包腳本

#!/bin/bash

#計時
SECONDS=0

#假設腳本放置在與項目相同的路徑下
project_path=$(pwd)
#取當前時間字符串添加到文件結尾
now=$(date +"%Y_%m_%d_%H_%M_%S")

#指定項目的scheme名稱
scheme="tete"
#指定要打包的配置名
configuration="development"
#指定打包所使用的輸出方式,目前支持app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method參數
export_method='development'

#指定項目地址
workspace_path="$project_path/tete.xcworkspace"
#指定輸出路徑
output_path="/Usersengxun/Desktop/"
#指定輸出歸檔文件地址
archive_path="$output_path/tete_${now}.xcarchive"
#指定輸出ipa地址
ipa_path="$output_path/tete_${now}.ipa"
#指定輸出ipa名稱
ipa_name="tete_${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
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 fir_token -c "${commit_msg}"

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

4.把腳本文件放在工程目錄里面和xcodeproj同級目錄,然后在終端中切換到工程目錄執行腳本即可

Paste_Image.png
Paste_Image.png

使用facebook xctool打包

1.安裝xctool

brew install xctool

2.打包腳本

#!/bin/bash

#計時
SECONDS=0

#假設腳本放置在與項目相同的路徑下
project_path=$(pwd)
#取當前時間字符串添加到文件結尾
now=$(date +"%Y_%m_%d_%H_%M_%S")

#指定項目的scheme名稱
scheme="DemoScheme"
#指定要打包的配置名
configuration="Adhoc"
#指定打包所使用的provisioning profile名稱
provisioning_profile='AdHoc Profile'

#指定項目地址
workspace_path="$project_path/Demo.xcworkspace"
#指定輸出路徑
output_path="/Users/your_username/Documents/"
#指定輸出歸檔文件地址
archive_path="$output_path/Demo_${now}.xcarchive"
#指定輸出ipa地址
ipa_path="$output_path/Demo_${now}.ipa"
#獲取執行命令時的commit message
commit_msg="$1"

#輸出設定的變量值
echo "===workspace path: ${workspace_path}==="
echo "===archive path: ${archive_path}==="
echo "===ipa path: ${ipa_path}==="
echo "===profile: ${provisioning_profile}==="
echo "===commit msg: $1==="

#先清空前一次build
xctool clean -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration}

#根據指定的項目、scheme、configuration與輸出路徑打包出archive文件
xctool build -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration} archive -archivePath ${archive_path}

#使用指定的provisioning profile導出ipa
#我暫時沒找到xctool指定provisioning profile的方法,所以這里用了xcodebuild
xcodebuild -exportArchive -archivePath ${archive_path} -exportPath ${ipa_path} -exportFormat ipa -exportProvisioningProfile "${provisioning_profile}"

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

#輸出總用時
echo "===Finished. Total time: ${SECONDS}s==="
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容