iOS应用程序不会死亡,写入控制台并退出后播放声音

我的应用程序有一些僵尸问题。 (不是一个NSZombie问题,就像是一个回来的死亡问题。)

我首先注意到,在debugging会话之后,当我去跑步的时候,我的iPhone上的音乐会每隔7分钟暂停一下,当我解锁设备时,应用程序名称会在状态栏中闪烁红色,就好像它刚刚坠毁。 有时甚至会有应用程序幻影的声音,就像它仍然在后台运行在某种程度上。

手动退出应用程序,继续。 即使应用程序不再出现在正在运行的应用程序列表中,仍然会收到间歇性的audio瑕疵

当我重新插入,这是在每次应用程序zombified并重新启动本身在控制台。 它看起来就像一个正常启动的应用程序! 什么? 什么可能触发我的应用程序重新启动?

安慰:

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 

解决scheme的解释 :事实certificate很简单 – 1.我在deallocclosures了audio会话,而不是在applicationDidEnterBackground 。 因为我使用kaudiosessioncategory_playandrecord似乎告诉iOS重新启动应用程序,如果它在后台崩溃。

现在,为什么在后台崩溃? 呃,那是我的下一个任务。

该应用程序可能会设置一个后台voip标志。 如果是这样,操作系统将重新启动应用程序,如果它退出exception(或重新启动设备)。

你使用什么audio框架? 在退出应用程序后继续进行audio处理时,iPod应用程序,GarageBand和其他audio应用程序会在标题栏中呈现红色闪烁。 这不会发生与科科斯Denshion我不认为,所以你必须使用苹果框架为您的audio? 答案可能在于如何configuration。 苹果公司给出了一些自己的audio框架的权限,以保持在后台运行,所以你可以定制音乐播放,如无线电台的应用程序等。

我们可能还需要代码片段,因为日志不会告诉我们执行什么代码

Interesting Posts