我已经用谷歌搜索了这个,我发现了很多关于这个的争论,我的理解是这个问题与 Spritekit 的 OpenGl 渲染有关,有些人在使用 Spritekit 播放 AUdio 时遇到了这个问题。
虽然我的情况不同,但当我使用函数集成 Flurry 发布者 Api 时,我会遇到这个问题
在[Flurry startSession:FlurryAPPKey];
在 APPDelegete 文件中
注释掉上面的代码解决了这个问题。
我认为当你使用 SpriteKit 进行整合时会发生一些事情,正如我在谷歌上发现的那样,比如 AVAudioSession 等,
我只是想知道,避免此类渲染问题的最佳做法是什么,或者这可能真的发生在 Flurry Sdk 4.4.2 上?不知道,但回溯正在显示
#0 0x3311b932 in gpus_ReturnNotPermittedKillClient ()
#24 0x31032844 in UIApplicationMain ()
#25 0x0004cd16 in main at ....
这里是示例代码的链接 Flurry SpriteKit
最佳答案
你应该总是在后台暂停你的 SKView。这将防止 SpriteKit 生成 gpus_ReturnNotPermittedKillClient
异常。似乎某些执行后台工作的服务,例如 Flurry 和 AVAudioSession,以这种方式干扰 SpriteKit。因此,为了防止这种情况,您可以执行以下操作。
// Register for relevant application lifecycle notifications
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillResignActive)
name:UIApplicationWillResignActiveNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidBecomeActive)
name:UIApplicationDidBecomeActiveNotification
object:nil];
// Pause/Unpause SKView instance
- (void)applicationWillResignActive
{
[[self skView] setPaused:YES];
}
- (void)applicationDidBecomeActive
{
[[self skView] setPaused:NO];
}
关于ios - SpriteKit 在使用 [Flurry startSession :FlurryAPPKey]; 进入背景时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24321477/