我正在尝试使用Application Loader(现有应用程序已经包含其他应用内购买)上传新IPA的托管内容.当我点击"Deliver"时,我看到显示以下错误:
ERROR 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"或"iOS-iPad"在XPath/package/software/software_metadata/versions/version [2]/locales/locale/software_screenshots/software_screenshot [18]"
语境:
我的应用程序的早期版本包含iPad-pro截图.
似乎虽然我只是想上传一个用于应用程序内购买的新软件包,但应用程序加载程序会下载应用程序的整个元数据,而这似乎并不能将iPad-Pro视为需要屏幕截图的有效设备.
因此,当它无法验证我的新应用内购买的元数据时.
我已经无法删除现有应用的截图.
有人知道解决这个问题的方法吗?任何解决方法?
编辑:从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拖放到终端并按Enter键来获得.
第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