摘要
我正在尝试将我的应用程序自动上传到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
答案 0 :(得分:3)
最近更改了iTunes Connect后,您可能需要查看我的新开源库:https://github.com/KrauseFx/deliver
它会使用iTMSTransporter
将您的应用上传到iTunes Connect。
您可以在此处查看应用的上传方式:https://github.com/KrauseFx/deliver/blob/master/lib/deliver/itunes_transporter.rb
答案 1 :(得分:2)
我发布了一个要点,以获取要在iTunesConnect上发布的下一个应用的标识符:https://gist.github.com/KrauseFx/db0ea9c884465e507602
我无法找到指定您要上传的应用的方法。至少现在有一种方法可以接收下一个要上传的应用程序的标识符。
基本上我使用' xcrun -sdk iphoneos验证'命令并读取其输出以确定标识符。
答案 2 :(得分: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
答案 3 :(得分:1)
在看到Transporter解决方案之前,我已经用xrun解决了这个问题。我没有将包ID指定给xrun,而是尝试找出队列中的下一个,然后提交它。
所以,我的脚本只是对我的应用程序中的随机应用程序进行“测试”验证,然后捕获xcrun的输出。错误消息提到了所需的包ID,因此我构建并提交该应用程序。
如果队列中的下一个是更新而不是新的应用程序,Validate将不会告诉您bundle ID,因此您必须执行“test”-upload并且输出将具有:
ReservedBundleIdentifier =“...”
再次告诉你接下来要建哪个。为避免这种情况变慢,请为“测试”上传设置一个非常小的应用程序。