使用Automator自动化iOS打包流程

本文详细介绍了一种使用Automator和AppleScript实现iOS项目自动化打包的方法,并提供了完整的脚本及参数说明,涵盖从构建到验证直至上传AppStore的全过程。

一、新建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 "提交蒲公英失败"
复制代码

谢谢观赏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值