追蹤應用程式當機

此資訊可協助您了解當機追蹤方式,以及處理錯誤當機的最佳實務。

重要

您應升級至 iOS SDK 4.8.6 版,其中包含的重大變更可避免回報錯誤當機情況。

Adobe 何時會回報當機?

如果您的應用程式在未先進入背景執行的情況下即終止,SDK 便會在下次啟動應用程式時回報當機情況。

當機報告的運作方式為何?

iOS 會使用系統通知,讓開發人員能夠在應用程式生命週期中,追蹤和回應不同的狀態和事件。

Adobe Mobile iOS SDK 內含通知處理常式,可回應 UIApplicationDidEnterBackgroundNotification 通知。此程式碼會設定一個值,指出使用者已讓應用程式進入背景執行。在後續的啟動中,如果找不到該值,則會回報當機。

為何 Adobe 要以此方式測量當機?

此種測量當機方式可為以下問題提供詳細解答:「使用者是否刻意結束我的應用程式?」

Apteligent (原為 Crittercism) 等公司所提供的當機報告資料庫皆會使用全域 NSException 處理常式,以提供更詳細的當機報告。您的應用程式不能有多個上述類型的處理常式。Adobe 了解客戶可能會使用其他當機報告提供者,因此決定不實施全域 NSException 處理常式,以避免出現建置錯誤的情況。

導致回報錯誤當機的原因為何?

以下情況已知會不實導致 SDK 回報當機:

  • 如果您使用 Xcode 進行偵錯,在應用程式於前景執行時再次啟動應用程式,就會造成當機。

    秘訣

    您可以讓應用程式在背景執行,再從 Xcode 重新啟動應用程式,即可避免在此情況下出現當機。

  • 如果您的應用程式於背景執行,並透過 trackActionFromBackgroundtrackLocationtrackBeacon 以外的呼叫傳送 Analytics 點擊,但該應用程式在背景執行的情況下遭到終止 (手動或由作業系統進行),則下次啟動時將會出現當機情況。

    秘訣

    背景活動發生時若超出 lifecycleTimeout 臨界值,可能也會導致其他錯誤啟動情況。

  • 如果您的應用程式由於背景擷取、位置更新等原因於背景啟動,且在未曾進入前景執行的情況下即由作業系統終止,則在下次啟動 (背景或前景) 時,會導致當機。

  • 如果您以程式設計方式從 NSUserDefaults 刪除 Adobe 的暫停標記,而應用程式同時於背景執行時,則在下次啟動或繼續執行應用程式時會造成當機情況。

我該如何避免收到錯誤當機報告?

下列實務可協助您避免收到錯誤當機報告:

  • 在 iOS SDK 4.8.6 中已新增程式碼,以更有效地判斷是否需要新的生命週期工作階段。

    此程式碼可修正前一節中的錯誤當機 #2 和 #3。

  • 請確定您根據非生產報表套裝執行開發,以免發生錯誤當機 #1。

  • 請勿刪除或修改 Adobe Mobile SDK 放入 NSUserDefaults 的任何值。

    如果您在 SDK 外部修改這類值,則回報的資料將會無效。

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now