2012-04-26 41 views
2

我的應用程序有一些殭屍問題。 (不是一個NSZombie的問題,就像是一個回來的死亡問題)iOS應用程序不會死亡,寫入控制檯並退出後播放聲音

我首先注意到,在調試會話之後,當我去跑步時,我的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如果在後臺崩潰時重新啓動應用程序。

現在,它爲什麼在後臺崩潰? ...好吧,那是我的下一個任務。

+0

這篇文章可能在某個時間以前,但我注意到有openGL代碼在您的應用在後臺運行時運行。這是不允許的,os會終止你的應用程序。 – justinkoh 2014-01-03 03:31:08

回答

2

該應用程序可以有一個背景VOIP標誌設置。如果確實如此,則操作系統將在應用程序異常退出時(或重新啓動設備時)重新啓動應用程序。

0

我們可能會需要代碼片段也可以作爲日誌沒有告訴我們什麼代碼被執行

+0

無論您運行的是什麼代碼,應用程序都不可能重新生成自己嗎? – buildsucceeded 2012-04-26 11:40:36

+1

這可能更像是一個「評論」而不是「答案」,嘿? – buildsucceeded 2012-04-28 22:11:55

2

你在用什麼音頻框架?在退出應用程序後繼續進行音頻處理時,iPod應用程序,GarageBand和其他音頻應用程序會在標題欄中呈現紅色閃爍。 Cocos Denshion不會發生這種情況,我不這麼認爲,所以您必須爲您的音頻使用Apple框架?答案可能在於它如何配置。蘋果公司給出了一些自己的音頻框架的權限,以保持在後臺運行,所以你可以定製音樂播放,如廣播電臺應用等。

+0

我使用RemoteIO進行輸入/分析和CocosDenshion進行回放(這可能是愚蠢的,但是,嘿,我需要RemoteIO輸入,而CocosDenshion很容易......)RemoteIO是非常低級的,所以它可能與此相關。 – buildsucceeded 2012-04-28 09:16:53

+0

這些都是真正有用的答案,他們一起幫助解決問題。我接受sounder_michael的回答,因爲它有優先權,但我也想正式表示感謝。 – buildsucceeded 2012-04-28 22:13:44

相關問題