【问题标题】:iTunes Application Loader - automationiTunes 应用程序加载器 - 自动化
【发布时间】:2011-03-27 21:21:17
【问题描述】:

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

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

App Loader 之类的应用如何实现自动化?

我正在考虑用 AppleScript 编写的东西……但我不知道它公开了哪些操作(如果有的话)。发现某个地方我也可以在 AppleScript 中进行 GUI 脚本编写,但我找不到相关文档。

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

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

OS X 是 10.6.4 版。

欢迎提出任何建议。

谢谢,

【问题讨论】:

    标签: macos scripting applescript app-store-connect


    【解决方案1】:

    您可以在一个 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 文件应该是什么 看看here

    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
    

    【讨论】:

      【解决方案2】:

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

      相关信息:

      您可以使用 altool,Application Loader 的命令行工具 验证您的应用程序二进制文件并将其上传到应用程序 商店。

      在上传之前验证您的构建或自动上传有效的 构建到 App Store,您可以将 altool 包含在您的连续 集成系统。 altool 位于应用程序中 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 username 指定您的用户名(Apple ID)。

      -p password 指定你的用户密码。

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

      【讨论】:

      • 抱歉,我知道这是一个老问题,但它仍然出现在 Google 中,我希望能提供这些新信息。
      • 乍得,感谢您的加入。我继续做其他事情,当时我最终使用 Cocoa 脚本自动化了应用程序加载器,因为 CLI 界面不可用。很高兴现在有一个命令行界面。干杯,
      • 感谢您发布altool 的完整路径。
      【解决方案3】:

      为了查看任何应用程序支持的 Applescript 命令,您需要查看应用程序的字典。 From my answer to a similar question posted just the other day:

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

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

      从 GUI 脚本开始的信息can be found on the OS X Automation site。 GUI 脚本是一种时髦的方式,我认为您无法获取屏幕控件的值,而只能设置它们。只有在没有其他途径有效的情况下,您才应该这样做。

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

      【讨论】:

      • 感谢 Philip ... py-appscript 的建议很有用。不幸的是,该应用程序没有字典,所以我只有 UI 脚本。不过我想我做到了。您可以通过类似...“获取第 1 行的文本字段 1 的值...”来获取某些元素的值;这对于错误报告很有用。
      • 我对没有字典并不感到惊讶。 Applescript 似乎或多或少地失去了 Apple 的青睐。他们只在更公开的旗舰应用程序中进行实现,即便如此,也可以说它们的功能不完整。在这些情况下,GUI 脚本确实是唯一的出路。我知道的一个真正的陷阱(除了语法和跟踪您正在操作的控件)是意外的警报和对话框窗口可能(并且将会)导致脚本出错。祝你好运!
      • 是的,我已经遇到了一些关于意外警报/对话框的问题。但是为了尽量减少这种情况,当脚本启动时,我首先终止应用程序以摆脱以前的状态。如果它无法正常终止(例如应用程序要求确认或其他情况),我将执行“kill -9”。从头开始每一个动作肯定在这方面有很大帮助。
      猜你喜欢
      • 1970-01-01
      • 2019-08-14
      • 2016-05-23
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多