9

最近,Apple 更改了 iTunes Connect 界面,并要求人们使用 Application Loader 上传应用程序。

这很好,但我需要一个脚本来自动化我的工作。

像 App Loader 这样的应用程序如何实现自动化?

我在想用 AppleScript 写的东西……但我不知道它暴露了哪些动作(如果有的话)。在某个地方找到了我也可以从 AppleScript 中执行 GUI 脚本的地方,但我找不到关于它的文档。

我需要什么...某种方式来触发输入操作(鼠标单击/键盘输入)并从显示的各种控件中读取文本。

如果这在 Python/Ruby 中是可能的,那就太好了,但 AppleScript 很好。

OS X 是 10.6.4 版。

任何建议表示赞赏。

谢谢,

4

3 回答 3

19

Application Loader 文档提到了一个可用于此目的的 altool。(https://itunesconnect.apple.com/docs/UsingApplicationLoader.pdf

相关资料:

您可以使用 altool(Application Loader 的命令行工具)来验证您的应用程序二进制文件并将其上传到 App Store。

要在上传之前验证您的构建或自动将有效构建上传到 App Store,您可以在持续集成系统中包含 altool。altool 位于 Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/ 文件夹中。(所以完整路径是 /Applications/Xcode.app/Contents/Applications/Application\Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool)

要运行 altool,请在命令行中指定以下选项之一:

$ altool --validate-app -f 文件 -u 用户名 [-p 密码] [--output-format xml]

$ altool --upload-app -f 文件 -u 用户名 [-p 密码] [--output-format xml]

在哪里:

--validate-app 指定您要验证指定的应用程序。

--upload-app 指定要上传指定的应用程序。

-f file 指定您正在验证或上传的应用程序的路径和文件名。

-u 用户名 指定您的用户名(Apple ID)。

-p 密码 指定您的用户密码。

--输出格式[xml | normal] 指定您希望 Application Loader 以结构化 XML 格式或非结构化文本格式返回输出。默认情况下,Application Loader 以文本格式返回输出信息。

于 2015-06-04T19:10:58.567 回答
2

为了查看任何应用程序支持的 Applescript 命令,您需要查看应用程序的字典。根据我对前几天发布的类似问题的回答

要在 Applescript 编辑器中访问应用程序的字典,请转到文件 > 打开字典...。操作系统知道支持 Applescript 的所有应用程序的列表将出现,但操作系统不会全部捕获,因此您可以使用浏览按钮。如果应用程序不支持 Applescript,则无法在对话窗口中选择它。

需要注意的是,应用程序应该支持某些命令但不支持,或者应用程序可能只支持最低要求。这些都非常非常简单,例如打开、退出等。您的里程可能会有所不同。

可以在 OS X 自动化站点上找到开始使用 GUI 脚本编写的信息。GUI 脚本是一种时髦的方式,我认为您无法获取屏幕控件的值,而只能设置它们。只有在没有其他途径有效的情况下,您才应该这样做。

如果你想坚持使用 Python,那么你可以查看py-appscript 项目,但这仍然依赖于应用程序的 Applescript 支持。

于 2010-08-10T15:01:46.993 回答
2

您可以在一个 bash 脚本中一个一个或一个全部使用这些命令中的任何一个,以实际自动化您的存档、提取和上传到 AppStore Connect 的过程。

档案

xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_NAME}" clean archive -configuration release -sdk iphoneos -archivePath ".build/${TEMP_BUILD}.xcarchive"

出口到 IPA

xcodebuild -exportArchive -archivePath  ".build/${TEMP_BUILD}.xcarchive" -exportOptionsPlist  "ExportOptions.plist" -exportPath  ".build/${TEMP_BUILD}.ipa"

将 IPA 上传到 TESTFLIGHT

altool --upload-app -f ".build/${TEMP_BUILD}.ipa/${APP_NAME}.ipa" -u $APP_STORE_USERNAME -p $APP_STORE_PASSWORD

1) 如果您不知道 ExportOptions.plist 文件应该是什么,请查看此处

2)要altool在终端的任何地方使用,您可以通过输入终端将其添加到 PATH 环境变量中:

MacBook-Pro:~ denis$ export PATH=$PATH:/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/
MacBook-Pro:~ denis$ source ~/.bash_profile
于 2019-02-14T13:22:48.907 回答