使用Automator自動化iOS打包流程

我要在河邊釣一整天的魚發表於2017-12-19

一、新建Automator檔案

1、在其他中找到Automator

1.png

2、配置所需要的內容

2.png

選擇沒有輸入和指定Xcode

3.png

4.png

新增變數Destination Path,雙擊紅圈指定到工程所在的目錄

5.png

新增AppleScript

6.png

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 "提交蒲公英失敗"
複製程式碼

謝謝觀賞

相關文章