2014年07月07日

SpriteKit使用時にAdMob広告タップ時にEXC_BAD_ACCESSで落ちる場合の対処法

ゲームフレームワークのSpriteKitで作ったアプリを動作中、AdMobなどの広告をタップしたときにアプリがEXC_BAD_ACCESSでクラッシュする場合の対処法。

クラッシュログを見ると、libGPUSupportMercury.dylib`gpus_ReturnNotPermittedKillClient が表示されていることがわかる。
これは、広告がタップされてアプリがバックグラウンドに移行するときに、SpriteKitで必要な然るべき処理が行われなかったためによるものだ。

従って、AppDelegateにバックグラウンドに移行する場合と復帰時のSpriteKitの処理を記述する必要がある。

AppDelegate.m
#import

- (void)applicationWillResignActive:(UIApplication *)application
{
// pause sprite kit
SKView *view = (SKView *)self.window.rootViewController.view;
view.paused = YES;
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
// resume sprite kit
SKView *view = (SKView *)self.window.rootViewController.view;
view.paused = NO;

}



参考記事:
http://stackoverflow.com/questions/19014012/sprite-kit-the-right-way-to-multitask
http://www.raywenderlich.com/forums/viewtopic.php?f=21&t=11170



posted by mobileDeveloper at 20:02 | Comment(0) | TrackBack(0) | トラブルシューティング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック