shell腳本自動(dòng)化打包(自用)

# configuration
configuration=$1

# ipa名字
ipa_name=$2

# 設(shè)置版本號(hào)
version=$3

# 設(shè)置scheme名稱
scheme_name="XXXXXX_${configuration}"

# 獲取當(dāng)前日期年月日時(shí)分秒
current_date=$(date "+%Y-%m-%d %H-%M-%S")

# 設(shè)置項(xiàng)目路徑和名稱
project_path="XXXXX"
project_name="XXXXX"

# 設(shè)置workspace路徑和名稱
workspace_path="XXXXX"
workspace_name="XXXXX"

# ExportOptions.plist的路徑
plist_path="XXXXX"

# 導(dǎo)出包的路徑
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
}

# 修改版本號(hào)
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
}

# 導(dǎo)出ipa
function export_ipa() {
    xcodebuild -exportArchive -archivePath "$export_path/${scheme_name}.xcarchive" -exportOptionsPlist "$plist_path/ExportOptions.plist" -exportPath "$export_path/build" -quiet
}

# 修改導(dǎo)出的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"
}

# 開(kāi)始執(zhí)行腳本
echo '自動(dòng)化打包開(kāi)始...'

echo 'Clean項(xiàng)目...'
clean_project
if [ $? -ne 0 ]; then
    echo "Clean 項(xiàng)目失敗 !"
    return
else
    echo "Clean 項(xiàng)目成功 !"
fi

echo '修改版本號(hào)...'
update_version
if [ $? -ne 0 ]; then
    echo "修改版本號(hào)失敗 !"
    return
else
    echo "修改版本號(hào)成功 -> $version !"
fi

echo 'Build 項(xiàng)目...'
build_project
if [ $? -ne 0 ]; then
    echo "Build 項(xiàng)目失敗 !"
    return
else
    echo "Build 項(xiàng)目成功 !"
fi

echo '開(kāi)始導(dǎo)出文件...'
export_ipa
if [ $? -ne 0 ]; then
    echo "導(dǎo)出文件失敗 !"
    return
else
    echo "導(dǎo)出文件成功 -> $export_path/build !"
fi

echo '修改ipa名字...'
rename_ipa
if [ $? -ne 0 ]; then
    echo "修改ipa名字失敗 !"
    return
else
    echo "修改ipa名字成功 -> $ipa_name.ipa!"
fi

echo "腳本執(zhí)行完畢!"


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容