一、新建Automator檔案
1、在其他中找到Automator
2、配置所需要的內容
選擇沒有輸入和指定Xcode
新增變數Destination Path,雙擊紅圈指定到工程所在的目錄
新增AppleScript
3、script中的內容
on run {input, parameters}
tell application "Terminal"
activate
do script "cd " & input & " && . BuildScript-AppStore/xcodeArchive.sh"
end tell
return input
end run
複製程式碼
到這Automator的配置就結束了。
二、iOS指令碼自動化打包
在上一篇文章中說過動態環境的配置 傳送門
將BuildScript-AppStore資料夾放在xcodeproj平級的資料夾下
1、客官先看指令碼
#!/bin/sh
#
#rvm system
function failed() {
echo "Failed: $@" >&2
exit 1
}
archiveName="XXXX"
projectName="XXXX"
scheme="XXXXX"
configuration="XXXX"
exportOptionsPlist="BuildScript-AppStore/exportOptions.plist"
ipaPath="$PWD/build/${archiveName}/${scheme}.ipa"
appleid="XXX"
applepassword="XXX"
#build clean
xcodebuild clean -project ${projectName} \
-configuration ${configuration} \
-alltargets || failed "clean error"
#archive
xcodebuild archive -project ${projectName} \
-configuration ${configuration} \
-scheme ${scheme} \
-destination generic/platform=iOS \
-archivePath $PWD/build/${archiveName}.xcarchive || failed "archive error"
#Export Complete
xcodebuild -exportArchive -archivePath $PWD/build/${archiveName}.xcarchive \
-exportOptionsPlist ${exportOptionsPlist} \
-exportPath ${buildPath}/appStorebuild/${archiveName} \
-verbose || failed "export error"
#釋出到iTunesConnect
altoolPath="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
#validate
"${altoolPath}" --validate-app -f ${ipaPath} -u "$appleid" -p "$applepassword" -t ios --output-format xml || failed "validate error"
#upload
"${altoolPath}" --upload-app -f ${ipaPath} -u "$appleid" -p "$applepassword" -t ios --output-format xml || failed "upload error"
複製程式碼
2、引數說明
archiveName 看你心情寫一個名字
projectName 你的xcodeproj名字
在工程根目錄下執行 xcodebuild -list可以看到你可以設定的 scheme和 configuration 這兩個引數就是上次動態環境配置的scheme 和 Build Configuration
exportOptionsPlist 是配置在打包中的引數,method根據你的需要可以設定為app-store, package, ad-hoc, enterprise, development, and developer-id
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string>XXXX</string>
</dict>
</plist>
複製程式碼
這裡plist檔案和指令碼檔案都在BuildScript-AppStore檔案內
3.上述指令碼是在提交到App Store中的平常在測試中一般放在fir或者蒲公英上
上傳蒲公英 【蒲公英官方文件】
curl -F "file=@${ipaPath}" \
-F "uKey=XXXX" \
-F "_api_key=XXXXXX" \
-F "updateDescription=版本描述" \
https://www.pgyer.com/apiv1/app/upload || failed "提交蒲公英失敗"
複製程式碼
謝謝觀賞