Game Center部分成就本地化图片不显示及iOS14崩溃问题咨询
Game Center成就图片加载异常及iOS 14.x崩溃问题
核心问题
- iOS 14至iOS 17系统中,打开应用的Game Center成就视图时,部分已完成成就的本地化配置图片无法显示,其余成就显示正常。
- 应用内调用
GKAchievementDescription.loadImage()时,对应图片缺失的成就会返回nil,导致iOS 14.x设备启动初期崩溃,iOS 15及以上系统无此崩溃现象。
背景
应用此前上线26项成就时无任何问题:所有成就图片在Game Center中显示正常,GKAchievementDescription.loadImage()可成功获取全部图片。近期发布更新新增6项成就后,全部32项成就均在App Store Connect中显示为「Live」,且均配置了本地化图片。
症状细节
- iOS 14.x用户反馈应用启动2-3秒后崩溃,通过Crashlytics确认多名用户遭遇此问题,崩溃原因是
loadImage()返回nil未做处理。 - Game Center成就视图中图片缺失的成就,与应用内
loadImage()返回nil的成就完全对应。 - 问题与是否为新增成就无关:部分出问题的是此前上线的老成就,也有2项新增成就存在图片加载异常。
- 32项成就共用6张不同图片,但图片本身无问题:同一张图片用于多个成就时,可能在部分成就中显示正常,在另一部分中缺失;这些图片在最初26项成就上线前已创建,此前显示正常,添加到新成就前未做任何修改。
临时解决方案
在iOS 14及以下系统中,跳过调用GKAchievementDescription.loadImage(),可避免崩溃。
已尝试的无效操作
- 重新上传原始图片至有问题的成就
- 添加带图片的新语言本地化并修改设备语言
- 将有问题的成就归档后取消归档(设备上成就状态实时更新,但图片仍未显示)
- 受苹果缓存策略影响,无法确定修改生效周期,但上述操作均未解决问题
内容的提问来源于stack exchange,提问作者Egon Beermat
相关产品推荐
相关产品推荐

