4

概括

我正在尝试自动将我的应用程序上传到 iTunesConnect。

我至少有 6 个应用程序,并且所有应用程序始终“准备好上传”。

问题是当我尝试使用命令行将应用程序上传到 iTunesConnect 时,出现以下错误消息:

“警告:iTunesConnect 中预配置的应用程序不止一个。只有第一个会被使用。”。

问题

  • 我怎么知道第一个是什么?
  • 有没有办法设置第一个?
  • 有没有办法指定我要提交的应用程序?我是怎么做的?

构建脚本...

xcodebuild -target $TARGETNAME -configuration Release -sdk iphoneos clean build "CODE_SIGN_IDENTITY=iPhone Distribution: XXXXX..." "PROVISIONING_PROFILE=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

xcrun -sdk iphoneos PackageApplication -v $CURRENTDIR/build/Release-iphoneos/$TARGETNAME.app -o $CURRENTDIR/Dist/$TARGETNAME.ipa --sign "iPhone Distribution: XXXXX..." --embed "path/to/XXXXX.mobileprovision"

上传脚本...

security add-generic-password -s Xcode:itunesconnect.apple.com -a user@email.com -w password -U

xcrun -sdk iphoneos Validation -verbose -online -upload ./Dist/$TARGETNAME.ipa

security delete-generic-password  -s Xcode:itunesconnect.apple.com -a user@email.com
4

4 回答 4

3

在最近对 iTunes Connect 进行了更改之后,您可能想查看我的新开源库:https ://github.com/KrauseFx/deliver

它将使用iTMSTransporter将您的应用程序上传到 iTunes Connect。

您可以在此处查看应用程序的上传方式:https ://github.com/KrauseFx/deliver/blob/master/lib/deliver/itunes_transporter.rb

于 2014-11-26T01:15:04.717 回答
2

我发布了一个要点来获取下一个要在 iTunesConnect 上发布的应用程序的标识符:https ://gist.github.com/KrauseFx/db0ea9c884465e507602

我找不到指定您要上传的应用程序的方法。至少现在有一种方法可以接收下一个要上传的应用程序的标识符。

基本上,我使用“xcrun -sdk iphoneos Validation”命令并读取其输出以确定标识符。

于 2014-09-02T08:51:05.153 回答
1

在看到 Transporter 解决方案之前,我已经用 xrun 解决了这个问题。我没有为 xrun 指定捆绑 ID,而是尝试找出队列中的下一个,然后提交。

所以,我的脚本只是对我的一个随机应用程序进行“测试”验证,然后我捕获 xcrun 的输出。错误消息提到了所需的包 ID,因此我构建并提交了该应用程序。

如果队列中的下一个是更新而不是新应用程序,则验证不会告诉您捆绑 ID,因此您必须执行“测试”-upload 并且输出将具有:

ReservedBundleIdentifier = "..."

这再次告诉您接下来要构建哪个。为避免速度变慢,请使用一个非常小的应用程序进行“测试”上传。

于 2014-04-11T20:29:38.703 回答
1

http://diegopeinador.blogspot.com/2013/10/automatic-app-creation-and-binary-upload.html本文包含解决方案,但您必须使用iTMSTransporter(Application Loader 的命令行工具)而不是xcrun Validation.

基本上,您只需要文章中脚本的最后一行。我通过删除我不需要的参数来简化它,所以它看起来

/path/to/iTMSTransporter -u "${ITUNESCONNECT_LOGIN}" -p "${ITUNESCONNECT_PASSWORD}" -m upload -v critical -f /path/to/.itmp/or/folder/containing/.itmp
于 2014-04-10T12:09:05.280 回答