游戏中心成就未显示某些已完成成就的成就本地化图像

问题描述 投票:0回答:1

如果我打开应用程序的 Game Center 成就视图,一些已完成的成就卡无法显示成就本地化中设置的图像,而其他成就则正确显示其图像。对于 iOS 14 到 17 来说都是如此。

此外,在我的应用程序中,对于游戏中心视图中缺少图像的相同成就,调用

GKAchievementDescription.loadImage()
会返回 nil。这会导致 iOS 14.x 设备崩溃。

背景: 应用程序之前已上线,有 26 个成就,没有任何问题 - Game Center 中所有成就的图像正确显示,并且

GKAchievementDescription.loadImage()
检索了所有成就的这些图像。

我最近发布了应用程序的更新,并在该更新中添加了 6 个新成就。所有 32 项成就都在 App Store Connect 中显示为“Live”,所有成就都在本地化部分设置了图像。

一位用户报告我的应用程序在更新后在其 iOS 14.5 设备上启动后 2-3 秒崩溃。我的诊断发现,由于缺少图像,

GKAchievementDescription.loadImage()
在 iOS 14.x 上的某些成就上崩溃了。 iOS 15 及更高版本不会因此调用而崩溃。然后我在 Crashlytics 中注意到,有几个用户在 iOS 14.x 上遇到了这种早期崩溃,然后我注意到在 iOS 游戏中心的成就视图中,一些图像也丢失了,并且该组丢失的图像与我的应用程序调用中丢失了那些。

棘手的部分是 - 它与新成就无关,一些丢失的图像是先前启动的成就以及其中 2 个新成就的图像。此外,我在 32 项成就中使用了一组 6 张不同的图像,而且那里也没有相关性 - 对于我为多项成就上传的特定图像,它可能在一个成就中可见,而在另一个成就中不可见。我上传的这组图像是在 26 个成就首次发布之前创建的,并且工作和显示没有问题,并且在添加到 6 个新成就之前没有在本地进行更改。

很难知道从哪里开始,因为 iOS 游戏中心视图本身不会加载这些图像,尽管它们是在 App Store Connect 中配置的,并且是在添加新成就之前加载的。我可以在应用程序中放置一个临时解决方法,不在 iOS 14 及更低版本上进行 loadImages 调用,以防止崩溃。

我尝试将原始图像“重新上传”到实时成就中,并添加了附加图像的新语言本地化,并更改了我设备上的本地语言,但这似乎没有改变任何内容。根据苹果的缓存策略,很难知道要“等待”多久才能传播这种更改。我还尝试过存档然后取消存档其中一个有问题的成就 - 随着成就消失并重新出现在列表中,每个更改几乎实时反映在设备上,但仍然没有图像。

game-center achievements
1个回答
0
投票

这是由于 Apple 基础设施存在一些不一致造成的。尽管成就是实时的并且本地化需要图像,但游戏中心正在控制台中记录有关在远程服务器上找不到丢失的成就图像的问题。

我推出了一个应用程序更新(出于不同的原因),其中不包括对成就或游戏中心的任何更新,并且在发布后不久,问题“解决”了,成就图像重新出现在游戏中心中,并被通过 GameKit 检索。我假设该版本“刷新”了应用程序所需的组件。

© www.soinside.com 2019 - 2024. All rights reserved.