App Store截图 - “正在上传截图”错误 / appScreenshotSets 错误。

6
这将是一个自问自答的问题。此问题浪费了开发人员数天甚至整周的时间。
请看下面的截图以了解问题所在。苹果开发者论坛没有提供任何答案。
问题是:
由于App Store的Web界面问题,苹果应用商店不显示任何截图。 当您尝试上传新的截图时,它不允许您这样做。 它会抛出一个STATE_ERROR,并显示消息“屏幕截图已存在!”。 App Store Shows No Screenshots even when previously uploaded screenshots exist Console shows UNEXPECTED_ERROR from App Store API AppScreenshotSets throwing a 500 Error
2个回答

11

解决这个问题的方法是使用App Store Connect API删除所有“准备提交”审核版本的AppScreenshotSets。

执行以下步骤:

  1. 生成API密钥。转到“App Store Connect”>“用户与访问权限”>“密钥”(选项卡)。

  2. 使用ISSUER_ID、KEY_ID和AUTH KEY FILE(.p8文件)使用下面的ruby脚本创建时限敏感令牌

require "base64"
require "jwt"
ISSUER_ID = "XXXX-XX-XXXXXX-XX-XXXXXXXX"
KEY_ID = "XXXXXXXX"
private_key = OpenSSL::PKey.read(File.read("AuthKey_XXXXXX.p8"))
token = JWT.encode(
   {
    iss: "XXXX-XX-XXXXXX-XX-XXXXXXXX",
    exp: Time.now.to_i + 20 * 60,
    aud: "appstoreconnect-v1"
   },
   private_key,
   "ES256",
   header_fields={
     kid: "XXXXXXXXX" }
 )
puts token

  1. 使用 Ruby 运行脚本。

ruby generateTokenFromCredentials.rb

  1. 在终端导出时效性的令牌:

export APPSTORETOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  1. [可选步骤] 获取有关您的应用商店应用的其他信息

export APPSTORETOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//List user
curl 'https://api.appstoreconnect.apple.com/v1/users'  --Header "Authorization: Bearer $APPSTORETOKEN"

//List Apps
curl 'https://api.appstoreconnect.apple.com/v1/apps'  --Header "Authorization: Bearer $APPSTORETOKEN"


//Get App Store Versions
curl 'https://api.appstoreconnect.apple.com/v1/apps/<APP_STORE_ID_NUMBER>/relationships/appStoreVersions'  --Header "Authorization: Bearer $APPSTORETOKEN"


//List All App Store Version Localizations for an App Store Version
curl 'https://api.appstoreconnect.apple.com/v1/appStoreVersions/<APP_STORE_ID_NUMBER>/appStoreVersionLocalizations'  --Header "Authorization: Bearer $APPSTORETOKEN"


//Review submissions
curl 'https://api.appstoreconnect.apple.com/v1/apps/<APP_STORE_ID_NUMBER>/reviewSubmissions'  --Header "Authorization: Bearer $APPSTORETOKEN"



//Pre release versions 
curl 'https://api.appstoreconnect.apple.com/v1/apps/<APP_STORE_ID_NUMBER>/preReleaseVersions'  --Header "Authorization: Bearer $APPSTORETOKEN"


//Get App Info
curl 'https://api.appstoreconnect.apple.com/v1/apps/<APP_STORE_ID_NUMBER>/appInfos'  --Header "Authorization: Bearer $APPSTORETOKEN"

从Google Chrome或Safari控制台中找出导致500错误的请求,并获取appStoreVersionLocalizations

curl 'https://appstoreconnect.apple.com/iris/v1/appScreenshotSets?include=appScreenshots&filter\[appStoreVersionLocalization\]=XXXXX-XX-XX-XX-XXXXXXX' \
  -H 'sec-ch-ua: "Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"' \
  -H 'x-csrf-itc: [asc-ui]' \


Take appStoreVersionLocalization from the URL

  1. 列出所有的appScreenshotSets并获取其ID:

//List all relavant App Screenshots
curl 'https://api.appstoreconnect.apple.com/v1/appStoreVersionLocalizations/21XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/appScreenshotSets'  --Header "Authorization: Bearer $APPSTORETOKEN"

  1. 删除它们中的最后一个

//Delete Screenshots Sets
curl -X DELETE 'https://api.appstoreconnect.apple.com/v1/appScreenshotSets/<XXXXX-XXX-XXX-XX-XXXX>' --Header "Authorization: Bearer $APPSTORETOKEN"

现在您可以返回到App Store Connect的网页界面并继续上传。

[点下方的点赞和订阅按钮!] [没错,这是一个嘲笑所有YouTube频道的玩笑。]


0
最简单的解决方案是:1)只需更改版本名称或编辑一些文本。 2)在点击提交按钮之前,您可以看到提交按钮已启用,请上传截图并单击“提交”按钮。添加到审核按钮也正常工作,然后您就可以成功发布应用程序了。
我希望这对你有用,兄弟。

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接