xcodebuild自動打包指令碼與自動上傳蒲公英指令碼
阿新 • • 發佈:2018-12-25
指令碼檔案"xxx.sh"使用"Sublime_Text"工具進行編輯。
在終端執行指令碼時的命令:sh xxx.sh
# 指令碼功能說明
# 在終端,使用xcodebuild進行自動打包,以及上傳到蒲公英#
# 使用步驟:
# 1 目錄配置(打包上傳目錄、專案目錄)
# 2 專案配置(版本、名稱、證書、描述檔案UUID、描述檔案、archive儲存目錄、ipa儲存目錄)
# 3 刪除舊檔案
# 4 清除舊專案
# 5 生成archive
# 6 生成ipa
# 7 上傳ipa到蒲公英(上傳路徑、userKey、apiKey)
#
注意:以下示例程式碼可以正常使用,在使用前需要修改配置為你自己的資訊。如打包上傳目錄upload_path,專案目錄target_path,專案名稱target_name,證書名稱codeSignIdentity,描述檔案provisioning_profile,描述檔案UUIDprovision_UUID,以及上傳到蒲公英時的檔案地址file。
# 1 目錄(打包上傳目錄;專案目錄)
upload_path="/Users/zsy/Desktop/uploadIPA"
target_path="/Users/zsy/Desktop/iOSTest"
echo "upload_path打包路徑:$upload_path"
echo "target_path專案路徑:$target_path"
# 2 配置資訊 Release版本 configuration="Release" # 專案名稱 target_name="iOSTest" project_name="${project_name}.xcodeproj" workspace_name="${target_name}.xcworkspace" scheme="$target_name" echo "configuration配置:$configuration" echo "target_name專案名稱:$target_name" echo "workspace_name工作空間名稱:$workspace_name" echo "scheme名稱:$scheme" # archive包時使用證書、描述檔案UUID;ipa包時使用描述檔案(描述檔名稱) codeSignIdentity="iPhone Developer: zsy Test (5DD779QQBQ)" provision_UUID="06b7492h-083a-4313-c633-15de685929q4" provisoning_profile="iOSTestDevelopProfile" echo "codeSignIdentity開發證書:$codeSignIdentity" echo "provision_UUID描述檔案UUID:$provision_UUID" echo "provisoning_profile描述檔案:$provisoning_profile" # 儲存目錄(不同電腦修改下使用者名稱"zsy"即可) # project_dir=`pwd` # echo "project_dir目錄:$project_dir" # XCODE_PRJ="xcodeproj" # FILE_EXTENSION='xcworkspace' # PROJECT_DIR=`pwd` # CD_XCODE_PRJ=`pwd`/$PROJECT_NAME.$XCODE_PRJ # PROJECT_WORKSPACE=$PROJECT_DIR. # PROJECT_BUILD=`pwd`/$PROJECT_NAME/BUILD # 進入專案目錄時 # ipa_path="archive/${target_name}.ipa" # archive_path="archive/${target_name}.xcarchive" # log_path="./archive/log.txt" # 指定目錄時 cd "$upload_path" ipa_path="$upload_path/${target_name}.ipa" archive_path="$upload_path/${target_name}.xcarchive" log_path="$upload_path/log.txt" pwd echo "ipa_path匯出路徑:$ipa_path" echo "archive_path生成路徑:$archive_path" echo "log_path列印路徑:$log_path"
# 3 刪除舊檔案
rm -rf "$log_path"
rm -rf "$archive_path"
rm -rf "$ipa_path"
cd "$target_path"
pwd
# 4 清理構建目錄
# xcodebuild clean -configuration "$configuration" -alltargets
xcodebuild clean -configuration "$configuration" -alltargets >> $log_path
# 5 歸檔(其他引數不指定的話,預設用的是.xcworkspace或.xcodeproj檔案裡的配置) xcodebuild archive -workspace "$workspace_name" -scheme "$scheme" -configuration "$configuration" -archivePath "$archive_path" CODE_SIGN_IDENTITY="$codeSignIdentity" PROVISIONING_PROFILE="$provision_UUID" >> $log_path
# 6 匯出IPA
xcodebuild -exportArchive -exportFormat IPA -archivePath "$archive_path" -exportPath "$ipa_path" -exportProvisioningProfile "$provisoning_profile" >> $log_path
# 7 上傳IPA到蒲公英
curl -F "[email protected]/Users/zsy/Desktop/uploadIPA/iOSTest.ipa" \
-F "uKey=a512b58c56285d23456e011fgh706509" \
-F "_api_key=ab9c240d2efg9hi17j9642k3l5mnop5q" \
https://www.pgyer.com/apiv1/app/upload
指令碼完善 20180709
// 路徑設定
upload_path="/Users/zhangshaoyu/Desktop/build"
archive_path="${upload_path}/uploadIPA/${target_name}.xcarchive"
# ipa_path="${upload_path}/uploadIPA/${target_name}.ipa" # 未使用plist檔案打包時
ipa_path="${upload_path}/uploadIPA/ipa/" # 使用plist檔案打包時
plist_path="${upload_path}/xcodebuildPlist_script.plist"
# 4 匯出IPA xcodebuild
# 方法(使用plist配置生成ipa;不需要指定包格式,且生成目錄不需要設定檔名稱,即只需要"./archive/",而不是"./archive/test.ipa")
# plist檔案配置說明
# 1 提交App Store的plist檔案引數設定,如:method=app-store,uploadBitcode=YES,uploadSymbols=YES
# 2 內測的plist檔案引數設定,如:method=ad-hoc,compileBitcode=NO
# 3 method的可選值為:app-store, package, ad-hoc, enterprise, development, developer-id
xcodebuild -exportArchive \
-archivePath "$archive_path" \
-exportPath "$ipa_path" \
-exportOptionsPlist "$plist_path" -quiet >> "$log_path"