ios 之 自動打包 腳本 【bash 版本】

配置打包信息

# 工程名稱
kProjectName="ipa.xcodeproj"

# workspace 名稱 如果使用了cocopods等可能需要用工作空間方式打包
# workspaceName=“ipa.workspace”

# scheme名稱
kSchemeName="ipa"

# target 這里scheme只對應(yīng)了一個target運行;如果有多個target需要指定target
kTargetName="ipa"

# APP環(huán)境配置 Configuration
kConfiguration="Release"

# archive導(dǎo)出路徑
kArchivePath="./ipaOutput/${kSchemeName}.xcarchive"

# ipa導(dǎo)出路徑
kExport_ipa_Path="./ipaOutput/${kSchemeName}"

# 不同的打包方式這個導(dǎo)出文件不同 [這個文件很重要,他決定了你的包是否能夠正常導(dǎo)出] 
# 用Xcode自帶的archive方式導(dǎo)出ipa的時候,這個文件會隨之導(dǎo)出
kExportOptionsPlist="./ipaOutput/ExportOptions.plist"

kAppChangelog="Tips:我是版本更新信息"

打包 && 導(dǎo)出

# clean
xcodebuild  clean -configuration "$configuration" -alltargets

# archive project
xcodebuild archive -project "$kProjectName" -scheme "$kSchemeName" -configuration "$kConfiguration" -archivePath "$kArchivePath"

# archive workspace
# #xcodebuild  archive  -workspace "$workspaceName" -scheme "$scheme" -configuration  "$kConfiguration"  -archivePath "$kArchivePath"  

# 導(dǎo)出ipa
xcodebuild -exportArchive -archivePath "$kArchivePath" -exportOptionsPlist "$kExportOptionsPlist" -exportPath "$kExport_ipa_Path"

上傳ipa到分發(fā)平臺

# --------------> 檢測IPA存在否
ipa_path="${kExport_ipa_Path}/${kSchemeName}.ipa"

if [ -f "$ipa_path" ]
    then
        echo "------------ipa存在??......"
    else
        echo "------------ipa不存在??......"
        exit 1
fi

上傳到fir

# --------- firm 上傳配置

echo "請選擇登錄賬戶名:\n 1)kael 自己的fir賬戶(默認) \n 2)公司的fir賬戶"

read fir_token

if [[ $fir_token == 2 ]]; then
  #公司賬號
  fir_token="*********"
else
  # 自己的賬號
  fir_token="*********"
fi

fir publish ${ipa_path} -T $fir_token -c $kAppChangelog

上傳到pgy

# -------- pgy 上傳

echo "------------準(zhǔn)備發(fā)布蒲公英------------"
#>>>>>>>>>>>蒲公英賬號信息配置
#蒲公英賬號
pgy_API_Key="*********"
pgy_User_Key="*********"


# ------> 蒲公英發(fā)布
curl -F "file=@$ipa_path" \
-F "uKey=$pgy_User_Key" \
-F "_api_key=$pgy_API_Key" \
-F "updateDescription=$kAppChangelog" \
https://www.pgyer.com/apiv1/app/upload

腳本

#!/bin/sh

# 工程名稱
kProjectName="ipa.xcodeproj"

# workspace 名稱 如果使用了cocopods等可能需要用工作空間方式打包
# workspaceName=“ipa.workspace”

# scheme名稱
kSchemeName="ipa"

# target 這里scheme只對應(yīng)了一個target運行;如果有多個target需要指定target
kTargetName="ipa"

# APP環(huán)境配置
kConfiguration="Release"

# archive導(dǎo)出路徑
kArchivePath="./ipaOutput/${kSchemeName}.xcarchive"

# ipa導(dǎo)出路徑
kExport_ipa_Path="./ipaOutput/${kSchemeName}"

# 不同的打包方式這個導(dǎo)出文件不同
kExportOptionsPlist="./ipaOutput/ExportOptions.plist"

kAppChangelog="Tips:我是版本更新信息"


# ------------------> 打包區(qū)
# clean
xcodebuild  clean -configuration "$configuration" -alltargets

# archive project
xcodebuild archive -project "$kProjectName" -scheme "$kSchemeName" -configuration "$kConfiguration" -archivePath "$kArchivePath"

# archive workspace
# #xcodebuild  archive  -workspace "$workspaceName" -scheme "$scheme" -configuration  "$kConfiguration"  -archivePath "$kArchivePath"  

# 導(dǎo)出ipa
xcodebuild -exportArchive -archivePath "$kArchivePath" -exportOptionsPlist "$kExportOptionsPlist" -exportPath "$kExport_ipa_Path"


# --------------> 檢測IPA存在否
ipa_path="${kExport_ipa_Path}/${kSchemeName}.ipa"

if [ -f "$ipa_path" ]
    then
        echo "------------ipa存在??......"
    else
        echo "------------ipa不存在??......"
        exit 1
fi

# --------- firm 上傳配置

echo "請選擇登錄賬戶名:\n 1)kael 自己的fir賬戶(默認) \n 2)公司的fir賬戶"

read fir_token

if [[ $fir_token == 2 ]]; then
  #公司賬號
  fir_token="*********"
else
  # 自己的賬號
  fir_token="*********"
fi

fir publish ${ipa_path} -T $fir_token -c $kAppChangelog

# -------- pgy 上傳

echo "------------準(zhǔn)備發(fā)布蒲公英------------"
#>>>>>>>>>>>蒲公英賬號信息配置
#蒲公英賬號
pgy_API_Key="*********"
pgy_User_Key="*********"


# ------> 蒲公英發(fā)布
curl -F "file=@$ipa_path" \
-F "uKey=$pgy_User_Key" \
-F "_api_key=$pgy_API_Key" \
-F "updateDescription=$kAppChangelog" \
https://www.pgyer.com/apiv1/app/upload
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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