我已经搜索了这个,我发现了很多争论,我明白这个问题与Spritekit OpenGl的渲染有关,有些人在用Spritekit玩AUdio时遇到了这个问题。
虽然我的情况不同,但当我使用函数
整合Flurry发布商Api时,我正面临着这种情况在[Flurry startSession:FlurryAPPKey];
注释掉上面的代码可以解决问题。
我认为当你与SpriteKit进行整合时,有一些事情会发生,就像我在google上发现的那样,比如AVAudioSession等,
我只是想知道,避免这种渲染问题的最佳做法是什么,或者这可能真的发生在Flurry Sdk 4.4.2上?不知道但是回溯正在显示
#0 0x3311b932 in gpus_ReturnNotPermittedKillClient ()
#24 0x31032844 in UIApplicationMain ()
#25 0x0004cd16 in main at ....
这是示例代码的链接 Flurry SpriteKit
答案 0 :(得分:1)
您应始终在后台播放时暂停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];
}