2

私のアプリにはある種のゾンビの問題があります。(NSZombieの問題ではありません。たとえば、死からの復帰の問題です。)

デバッグセッションの後、実行に行くとiPhoneの音楽が約7分ごとに一時停止し、デバイスのロックを解除すると、ステータスバーでアプリ名が赤く点滅することに最初に気付きました。ちょうど墜落した。何とかしてバックグラウンドで実行されているように、アプリから幻の音が聞こえることさえありました。

アプリを手動で終了し、続行します。アプリが実行中のアプリのリストに表示されなくなっても、断続的なオーディオアーティファクトが発生します。

プラグを差し込むと、アプリがゾンビ化して再起動するたびにコンソールに表示されます。アプリの通常の起動と同じように見えます!なに?アプリが自動的に再起動するきっかけは何ですか?

コンソール:

Apr 26 12:10:01 unknown Breakout[2658] <Warning>: cocos2d: cocos2d v1.1.0-beta2b
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: cocos2d: Using Director Type:CCDirectorDisplayLink
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: cocos2d: OS version: 5.1 (0x05010000)
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: cocos2d: GL_VENDOR:   Imagination Technologies
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: cocos2d: GL_RENDERER: PowerVR SGX 535
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: cocos2d: GL_VERSION:  OpenGL ES-CM 1.1 IMGSGX535-63.24
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: cocos2d: GL_MAX_TEXTURE_SIZE: 2048
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: cocos2d: GL_MAX_MODELVIEW_STACK_DEPTH: 16
// etc //
Apr 26 12:10:01 unknown kernel[0] <Debug>: launchd[2658] Builtin profile: container (sandbox)
Apr 26 12:10:01 unknown kernel[0] <Debug>: launchd[2658] Container: /private/var/mobile/Applications/FFEB0A26-06D1-4C46-8AE5-C60582D09A1D [69] (sandbox)
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: Audio session details
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: Audio Input Available? YES 
Apr 26 12:10:01 unknown mediaserverd[32] <Warning>: 12:10:01.641 <SystemSoundServer> WARNING translating HAL error: 561214578 
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: Max Possible Inputs 15151420 
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: Outputs 2 
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: Device sample rate 44100.000000 
Apr 26 12:10:01 unknown Breakout[2658] <Warning>: Hardware buffer size 0.023220 
// etc //
Apr 26 12:10:33 unknown SpringBoard[52] <Notice>: Posting 'com.apple.iokit.hid.displayStatus' notifyState=1
Apr 26 12:10:33 unknown UserEventAgent[12] <Warning>: DEBUG: Changing screen blanked state: 0
Apr 26 12:10:33 unknown SpringBoard[52] <Notice>: MultitouchHID: detection mode: 255->0 (deferring until bootloaded)
Apr 26 12:10:33 unknown SpringBoard[52] <Notice>: MultitouchHID: device bootloaded
Apr 26 12:10:33 unknown SpringBoard[52] <Notice>: MultitouchHID: detection mode: 0->0
Apr 26 12:10:34 unknown kernel[0] <Debug>: set_crc_notification_state 0
Apr 26 12:10:34 unknown ReportCrash[2659] <Notice>: Formulating crash report for process Breakout[2658]
> 
Apr 26 12:10:34 unknown SpringBoard[52] <Warning>: pid_suspend failed for [2658]: Unknown error: -1, Unknown error: -1
Apr 26 12:10:34 unknown SpringBoard[52] <Warning>: Could not set priority of [2658] to 4096, priority: No such process
Apr 26 12:10:34 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.charliewilliams.Breakout[0xd5ad]) Job appears to have crashed: Trace/BPT trap: 5
Apr 26 12:10:34 unknown SpringBoard[52] <Warning>: Application 'Breakout' exited abnormally with signal 5: Trace/BPT trap: 5
Apr 26 12:10:35 unknown ReportCrash[2659] <Error>: libMobileGestalt computeUniqueDeviceID: total time for bb to return imei: 0
Apr 26 12:10:35 unknown ReportCrash[2659] <Notice>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/Breakout_2012-04-26-121033_Tortuga-Gigante.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0

解決策の説明:それは単純であることが判明しました-1。オーディオセッションをシャットダウンしていましdeallocたが、ではありませんでしたapplicationDidEnterBackground。そして、私が使用kaudiosessioncategory_playandrecordしているので、バックグラウンドでクラッシュした場合にアプリを再起動するようにiOSに指示しているようです。

さて、なぜそれがバックグラウンドでクラッシュするのですか?...まあ、それは私の次のタスクです。

4

3 に答える 3

2

アプリにはバックグラウンドVoIPフラグが設定されている場合があります。その場合、OSは、アプリが異常終了した場合(またはデバイスが再起動した場合)にアプリを再起動します。

于 2012-04-26T21:02:27.283 に答える
2

どのオーディオフレームワークを使用していますか?iPodアプリ、GarageBand、およびその他のオーディオアプリは、アプリの終了後にオーディオ処理を続行すると、タイトルバーに赤く点滅します。これはCocosDenshionでは起こらないと思います。オーディオにAppleフレームワークを使用している必要がありますか?答えはおそらくそれがどのように構成されているかにあります。Appleは、独自のオーディオフレームワークの一部に、バックグラウンドで実行し続けることを許可しているため、ラジオ局用のアプリなど、カスタマイズされた音楽を再生できます。

于 2012-04-27T01:34:57.843 に答える
0

ログには実行されたコードが表示されないため、おそらくコードスニペットも必要になります

于 2012-04-26T11:27:56.503 に答える