无法使用Application Loader上传应用内购买的托管内容

时间:2015-12-14 20:21:01

标签: ios application-loader

我尝试使用Application Loader(现有应用,已包含其他应用内购买)上传新IPA的托管内容。当我点击" Deliver"时,我看到显示以下错误:

  

错误ITMS-3000:"第262行第97列:属性值   " display_target"是无效的;必须等于" Mac"," iOS-3.5-in",   " iOS-4-in"," iOS-4.7-in"," iOS-5.5-in"," iOS-Apple-Watch&#34 ;要么   " IOS的​​ipad公司"在XPath   /包/软件/ software_metadata /版本/版本[2] /区域设置/区域/ software_screenshots / software_screenshot [18]"

上下文:

  1. 我的应用程序的早期版本包含iPad-pro截图。
  2. 虽然我似乎只是尝试上传一个新的应用内购买包,但App Loader会下载该应用的整个元数据,似乎并不认为iPad-Pro是有效的设备需要截图。
  3. 因此,当它无法验证我的新应用内购买的元数据时。
  4. 我已无法删除现有应用的截图。
  5. 有人知道解决这个问题的方法吗?任何解决方法?

2 个答案:

答案 0 :(得分:5)

编辑:从Xcode 9.1 Beta开始,您可以从Xcode的管理器窗口上传应用内购买内容。这比使用如下所述的Transporter工具要方便得多。

自v3.7起,Application Loader不再支持应用程序内购买。相反,您必须使用Apple的命令行Transporter工具上传内容。

您可以将Transporter单独安装到XCode / Application Loader。我喜欢这样做,因为我发现它更清洁,可以单独更新它。你可以在这里找到说明: https://help.apple.com/itc/transporteruserguide/#/apdAbeb95d60

因此,更新现有应用内购买内容的示例工作流程将是:

第1步:获取应用内购买的现有元数据:

iTMSTransporter -m lookupMetadata -u "$ITC_USERNAME" -p "$ITC_PASSWORD" -destination "$DOWNLOAD_PATH" -vendor_id "$ITC_PRODUCT_PARENT_ID" -subitemids "$ITC_PRODUCT_ID" -subitemtype InAppPurchase

如果您只想下载整个应用及其所有IAP的元数据,则可以省略-subitemids和-subitemtype选项。

我相信您还可以编辑与您的应用本身相关的其他元数据。您也可以删除/省略某些部分,但仍然可以使该过程起作用。

第2步:更新元数据的本地副本

  • 将您应该使用XCode归档到.pkg文件中的新IAP内容拖到上一步生成的.itmsp目录中。

  • 更新包含该信息的xml文件区域中的大小和md5校验和。你的.pkg的md5校验和可以通过打开终端并键入“md5”然后将.pkg拖放到终端然后按回车键来获得。

第3步:验证.itmsp包

iTMSTransporter -m verify -u "$ITC_USERNAME" -p "$ITC_PASSWORD" -f "$ITMSP_PATH"

第4步:上传(假设验证成功)

iTMSTransporter -m upload -u "$ITC_USERNAME" -p "$ITC_PASSWORD" -f "$ITMSP_PATH"

此工作流程是从以下网站获取/改编的,这非常有用,并提供您可能需要的其他相关信息: http://www.cyrilchandelier.com/having-fun-with-itmstransporter

答案 1 :(得分:3)

这里有一些问题,我解决了这个程序:

  • 右键单击.itmsp文件生成
  • 显示包内容
  • 打开metadata.xml文件
  • 删除所有<software_screenshot>代码,其中包含display_target =&#34; iOS-iPad-Pro&#34;
  • 保存并关闭
  • 重新打开文件

请仔细检查itunes connect侧的屏幕截图是否仍然可用(对我来说还可以,但我不确定此程序是否可以删除图像)。