2012-07-16 110 views
2

我想弄清楚「無法及時恢復」問題。在我們的測試設備之一(這是帶有最新操作系統的iPhone 4S)中,它經常發生,而在我自己的設備中,它似乎根本不會發生。無法及時恢復Crashlog

無論如何,我有幾個crashlogs。但我無法追查原因的根源。我知道這個問題可能是

1.當進程阻塞主線程時間過長。

2.當存在內存問題時。

我不認爲內存是一個問題,因爲它似乎發生在用戶離開主菜單並返回時。主菜單中沒有什麼事情發生,所以它可能是一個運行時間過長的任務。

下面是從崩潰日誌的摘錄:

有人可以幫我或引導我對誰我能追查問題的原因是什麼?反正有關閉看門狗定時器(可能不是吧?)另外,突出顯示的線程是指什麼?

  1. 我已經檢查了我的applicationDidBecomeActive & applicationWillEnterForeground,以確保沒有任何對那裏發生的。

  2. 據我所知,目前沒有同步呼叫。可達性是否使用同步呼叫來檢查互聯網?我該如何檢查?

  3. 我在恢復時沒有進行任何大數據傳輸。

  4. 我注意到GameCenter自動登錄或在恢復應用程序時檢查登錄。無論如何要防止這一點?這可能會導致超時問題嗎?

我試着做一個時間檔案,但我無法理解如何使用它來分析。如果你能爲此提供一個好的資源,那將是驚人的。

謝謝!

+0

這可能會也可能沒有幫助:http://stackoverflow.com/questions/7945016/how-to-optimize-mach-msg-trap?lq=1 我會檢查你同時運行的所有情況,即performSelectorInBackground和GCD。 – LearnCocos2D 2012-07-16 23:12:18

+0

沒有運氣,但男人。我不知道當我將應用程序從後臺移回時發生的過程是什麼。我如何看到發生了什麼? – AbhinavVinay 2012-07-17 00:23:56

+0

所以這隻發生在從後臺恢復時?你應該在問題中明確提到這一點。我會添加我的評論作爲答案,因爲這是我能提供的最好的atm。 – LearnCocos2D 2012-07-18 23:04:42

回答

1

您當前正在「嘗試查找問題模式」。你應該切換到「試圖找出這個問題到底有多大」這個模式。

所以去找另一個4S(實際上儘可能多的)來排除它是一個設備特定的問題。如果它發生在所有4S上,它應該更容易查明。如果沒有,請讓其他人查看它,討論可能的原因。當你陷入死衚衕時,同行編程方法通常會有所幫助。

如果問題只出現在一臺設備上,您可能需要檢查它是否損壞(或「越獄」),或者可能只需要硬重啓(持續電源和家中10秒以上)。

如果它只發生在某些設備上,但不是全部,請嘗試找到它們的共同點。這可以是語言/語言環境或聽寫,實際上可以是用戶可能已經改變的任何設置。如有必要,可以寫一個記錄器,將盡可能多的設置記錄到您的(網絡)服務器,以便逐個比較設置並快速丟棄那些不同步的設置。

如果只有極少數設備受到影響,您也可以忽略該問題,並希望來自用戶的其他崩潰日誌能夠揭示問題的關鍵。

最後,總是有選項可以禁用終止掛起,而是在按下home按鈕時終止應用程序(因爲它在iOS 4之前)。除非應用程序必須在後臺運行。

+0

嗨,是的,我的壞,我應該在我的問題更清楚。 它似乎也發生在其他設備上。雖然不經常。我已經使用儀器來檢查內存建立,並沒有任何。在長時間連續玩遊戲以及重新開始遊戲時,似乎沒有任何記憶累積。這個問題似乎是當應用程序在後臺留下很長時間,然後用戶回來。 – AbhinavVinay 2012-07-18 23:33:58

+0

我在Temple Run注意到,當你在玩遊戲時,你離開遊戲並立即回來,它會把你帶到暫停屏幕。但是如果您晚點回來,在顯示暫停屏幕之前,您需要一段時間才能進入加載屏幕。你有沒有機會知道他們爲什麼這麼做或他們現在在做什麼? 我也懷疑也許我加載聲音的方式可能是一個問題。我目前使用SimpleAudioEngine播放背景音樂。至於我使用CDAudioManager的聲音,我使用SoundEngine預加載效果,然後在需要時播放。 – AbhinavVinay 2012-07-18 23:42:05

+0

我真的不明白爲什麼這個問題似乎持續下去,因爲我似乎遵循了我所知道的最佳實踐。在處理應用程序退出或進入應用程序時,我應該做什麼? 我目前正在自己​​的工作,所以目前同行評議是不是一個選項:(謝謝你的時間。請讓我知道,如果你可以提供任何其他指針,謝謝。 – AbhinavVinay 2012-07-18 23:42:12