fin*_*ork 10 ios app-store-connect
这将是一个自我回答的问题。这个问题浪费了开发人员数天甚至数周的时间。
请参阅下面的屏幕截图以了解问题所在。苹果开发者论坛不会为您提供任何答案。
问题是:
由于 App Store 的 Web 界面问题,Apple App Store 没有显示屏幕截图。当您尝试上传新的屏幕截图时,它不允许您这样做。它会抛出 STATE_ERROR 并显示“屏幕截图已存在!”消息。
fin*_*ork 11
解决此问题的方法是使用 App Store Connect API 删除所有“准备提交”审核版本的 AppScreenshotSet。
应遵循的步骤:
生成 API 密钥。转到“App Store Connect”>“用户和访问”>“密钥”(选项卡)。
使用 ISSUER_ID、KEY_ID、AUTH KEY 文件(.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
Run Code Online (Sandbox Code Playgroud)
使用 ruby 运行脚本
ruby generateTokenFromCredentials.rb
Run Code Online (Sandbox Code Playgroud)
在终端中导出时间敏感令牌:
export APPSTORETOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
[可选步骤] 获取有关您的应用商店应用的更多信息
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"
Run Code Online (Sandbox Code Playgroud)
通过转到引发 500 错误的请求,从 Google Chrome 或 Safari 控制台查找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]' \
Run Code Online (Sandbox Code Playgroud)
从 URL 中获取 appStoreVersionLocalization
列出所有appScreenshotSet并获取 id:
//List all relavant App Screenshots
curl 'https://api.appstoreconnect.apple.com/v1/appStoreVersionLocalizations/21XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/appScreenshotSets' --Header "Authorization: Bearer $APPSTORETOKEN"
Run Code Online (Sandbox Code Playgroud)
删除其中每一个最后一个
//Delete Screenshots Sets
curl -X DELETE 'https://api.appstoreconnect.apple.com/v1/appScreenshotSets/<XXXXX-XXX-XXX-XX-XXXX>' --Header "Authorization: Bearer $APPSTORETOKEN"
Run Code Online (Sandbox Code Playgroud)
现在您可以返回 App Store Connect Web 界面并继续上传。
| 归档时间: |
|
| 查看次数: |
2864 次 |
| 最近记录: |