iOS 模拟器中未显示游戏中心完成横幅

Posted

技术标签:

【中文标题】iOS 模拟器中未显示游戏中心完成横幅【英文标题】:Game Center Completion Banner not showing in iOS Simulator 【发布时间】:2021-07-16 11:36:25 【问题描述】:

我正在尝试将 Game Center 集成到我的 ios 应用中。但是,即使我将ShowsCompletionBanner 标志设置为true,成就完成横幅也不会出现。我一直在使用 iOS 14 通过 iOS 模拟器测试我的应用。

我正在使用以下代码 (Xamarin.iOS):

var achievement = new GKAchievement("sample.achievement")

    PercentComplete = 100,
    ShowsCompletionBanner = true
;

achievement.ReportAchievement(null);

我可以确认 ReportAchievement 已经成功,因为该成就已在成就视图中解锁 (GKGameCenterViewControllerState.achievements)

添加信息:当我在achievement.ReportAchievement(null) 行放置断点时,会出现完成横幅。也尝试使用achievement.ReportAchievementAsync(),但我仍然遇到相同的行为。

提前致谢!

【问题讨论】:

能不能在真机上试试看问题是否依然存在? 【参考方案1】:

尝试使用静态 ReportAchievements 而不是正在使用的实例方法。 你可以在苹果开发者文档https://developer.apple.com/documentation/gamekit/gkachievement?language=objc中看到

但我们还需要了解调用 API 的位置,因为异步和计时仍然可能存在问题。 可能值得使用带有同步方法的完成处理程序,这可能会显示错误。

【讨论】:

以上是关于iOS 模拟器中未显示游戏中心完成横幅的主要内容,如果未能解决你的问题,请参考以下文章

游戏中心成就完成横幅未在 iOS7 上显示

UILocalNotification 不会在 ios9 设备上触发(横幅未显示)

使用 Xcode 的 iOS 应用程序中未显示按钮和标签

iAd 横幅显示在模拟器上,但不显示在设备上

Cordova:在桌面环境中未显示警报(它们在模拟器和真实设备上运行良好)

如何在 iOS 视网膜和非视网膜的屏幕底部放置 admob 横幅