# configuration
configuration=$1
# ipa名字
ipa_name=$2
# 設(shè)置版本號
version=$3
# 設(shè)置scheme名稱
scheme_name="XXXXXX_${configuration}"
# 獲取當前日期年月日時分秒
current_date=$(date "+%Y-%m-%d %H-%M-%S")
# 設(shè)置項目路徑和名稱
project_path="XXXXX"
project_name="XXXXX"
# 設(shè)置workspace路徑和名稱
workspace_path="XXXXX"
workspace_name="XXXXX"
# ExportOptions.plist的路徑
plist_path="XXXXX"
# 導出包的路徑
export_path="XXXXX/${configuration}/${scheme_name} ${current_date}"
# clean
function clean_project() {
xcodebuild clean -workspace "$workspace_path/$workspace_name.xcworkspace" -scheme "$scheme_name" -configuration $configuration
}
# archive
function build_project() {
xcodebuild archive -workspace "$workspace_path/$workspace_name.xcworkspace" -scheme "$scheme_name" -archivePath "$export_path/${scheme_name}.xcarchive" -destination "generic/platform=iOS" -sdk iphoneos -configuration $configuration -quiet
}
# 修改版本號
function update_version() {
path="${project_path}/${project_name}.xcodeproj/project.pbxproj"
sed -i '' -e "s/MARKETING_VERSION \= [0-9].*\;/MARKETING_VERSION = $version;/" $path
sed -i '' -e "s/CURRENT_PROJECT_VERSION \= [0-9].*\;/CURRENT_PROJECT_VERSION = $version;/" $path
}
# 導出ipa
function export_ipa() {
xcodebuild -exportArchive -archivePath "$export_path/${scheme_name}.xcarchive" -exportOptionsPlist "$plist_path/ExportOptions.plist" -exportPath "$export_path/build" -quiet
}
# 修改導出的ipa的名字
function rename_ipa() {
ipa_file="$export_path/build/$project_name.ipa"
new_ipa_file="$export_path/build/$ipa_name.ipa"
mv "$ipa_file" "$new_ipa_file"
}
# 開始執(zhí)行腳本
echo '自動化打包開始...'
echo 'Clean項目...'
clean_project
if [ $? -ne 0 ]; then
echo "Clean 項目失敗 !"
return
else
echo "Clean 項目成功 !"
fi
echo '修改版本號...'
update_version
if [ $? -ne 0 ]; then
echo "修改版本號失敗 !"
return
else
echo "修改版本號成功 -> $version !"
fi
echo 'Build 項目...'
build_project
if [ $? -ne 0 ]; then
echo "Build 項目失敗 !"
return
else
echo "Build 項目成功 !"
fi
echo '開始導出文件...'
export_ipa
if [ $? -ne 0 ]; then
echo "導出文件失敗 !"
return
else
echo "導出文件成功 -> $export_path/build !"
fi
echo '修改ipa名字...'
rename_ipa
if [ $? -ne 0 ]; then
echo "修改ipa名字失敗 !"
return
else
echo "修改ipa名字成功 -> $ipa_name.ipa!"
fi
echo "腳本執(zhí)行完畢!"
shell腳本自動化打包(自用)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關(guān)閱讀更多精彩內(nèi)容
- 打包示例 示例的打包工程和腳本我都放到git上,該示例是使用的企業(yè)證書打的企業(yè)包,如何打包其他類型證書的ipa,我...
- 前言 在上一篇文章中iOS自動化打包發(fā)布(一)介紹了如何使用Fastlane進行自動打包,但是筆者還是認為前期準備...
- 下載:腳本以及相關(guān)配置文件 shell.sh腳本 關(guān)于腳本相關(guān)配置,里面有詳細備注。 plist文件 export...
- 要實現(xiàn)的功能 update代碼 編譯打包app 上傳到fir.im 命令 更新代碼 cd /Users/xxx/x...
- 配置自動打包發(fā)布的流程通過下面幾步的設(shè)置好之后,以后再進行打包發(fā)布到第三方平臺或者App Store 只需要一步就...