使用[Flurry startSession:FlurryAPPKey]进入背景时SpriteKit崩溃;

时间:2014-06-20 06:46:46

标签: ios iphone background sprite-kit flurry

我已经搜索了这个,我发现了很多争论,我明白这个问题与Spritekit OpenGl的渲染有关,有些人在用Spritekit玩AUdio时遇到了这个问题。

虽然我的情况不同,但当我使用函数

整合Flurry发布商Api时,我正面临着这种情况

[Flurry startSession:FlurryAPPKey];

APPDelegete文件中的

注释掉上面的代码可以解决问题。

我认为当你与SpriteKit进行整合时,有一些事情会发生,就像我在google上发现的那样,比如AVAudioSession等,

我只是想知道,避免这种渲染问题的最佳做法是什么,或者这可能真的发生在Flurry Sdk 4.4.2上?不知道但是回溯正在显示

#0  0x3311b932 in gpus_ReturnNotPermittedKillClient ()
#24 0x31032844 in UIApplicationMain ()
#25 0x0004cd16 in main at ....

这是示例代码的链接 Flurry SpriteKit

1 个答案:

答案 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];
}