全部產品
Search
文件中心

Mobile Platform as a Service:使用 SDK

更新時間:Jul 13, 2024

完成以下步驟進行 iOS 用戶端診斷:

  1. 初始化診斷服務

  2. 設定使用者識別碼

  3. 寫診斷記錄

  4. 查看本地診斷記錄

  5. 擷取線上使用者診斷記錄

初始化診斷服務

診斷功能在使用之前需要進行初始化:

#import <MPDiagnosis/MPDiagnoseAdapter.h>
[MPDiagnoseAdapter initDiagnose];

診斷服務支援使用 移動同步訊息推送 方式拉取診斷記錄,兩種方式的初始化代碼不同。

移動同步方式初始化

若採用移動同步的方式拉取診斷記錄,則在使用診斷功能之前需要進行初始化。

#import <MPDiagnosis/MPDiagnoseAdapter.h>
[MPDiagnoseAdapter initDiagnose];

訊息推送方式初始化

您需要先接入訊息推送組件,完成 訊息推送初始化。然後,在接收到訊息推送之後,進行如下方法調用:

#import <APLog/APLogMgr.h>
[[APLogMgr sharedInstance] handlePushDiagnosisCmd:[notification.userInfo objectForKey:@"content"]];

舊版本升級注意事項

10.1.32 版本之後不再需要添加 APLogUser 類的 Category 檔案,中介層會實現封裝,升級版本後請檢查工程中是否存在舊版本配置,如果有請移除。下面為新版本應移除的配置。

Diagnose

設定使用者識別碼

診斷服務根據 使用者識別碼 拉取日誌。

  1. MPaaSInterface 的實現中通過 userId 函數配置使用者識別碼。 userid

  2. 當使用者切換時,即 MPaaSInterfaceuserId 函數中配置的值發生變化時,調用以下函數:

    [MPDiagnoseAdapter userChange];

    詳情可參考 MPDiagnosis 下的 MPDiagnoseAdapter.h 檔案。

寫診斷記錄

調用以下方法在 App 關鍵鏈路寫診斷記錄:

/**
 * Log a message with kAPLogLevelInfo level.
 *
 * @param message   An NSString object that contains a printf-style string containing a log message and placeholders for the arguments.
 * @param ...      The arguments displayed in the format string.
 */
#define APLogInfo(tag,fmt, ...) \
APLogToFile(tag, kAPLogLevelInfo, fmt, ##__VA_ARGS__)

詳情可參考 APLog 下的 APLog.h 檔案。

例如,可以在啟動完成後,調用下面的語句進行診斷記錄的寫入:

APLogInfo(@"mPaaS", @"Start Cost %d", time);
說明

  • APLogInfo 寫入的日誌預設不會在 Xcode 控制台列印,若希望在開發階段控制台列印相關日誌,可以在工程中添加 ConsoleLog 檔案。

  • 出於安全考慮,若您希望應用上線後不列印任何日誌(包括 NSLog 和 APLogInfo 列印的日誌),可在產生應用 release 包時在工程中添加 RemoveNSLog 檔案。

查看本地診斷記錄

您可以在沙箱目錄下找到診斷記錄,如下圖所示。該日誌預設不會上報,只有在需要時才通過控制台下髮指令拉取。

sss

儲存在用戶端本地的診斷記錄有 儲存期限檔案大小限制。用戶端診斷 SDK 會在應用壓後台或殺進程時按下述儲存策略檢查處理:
  • 儲存期限: 預設保留 6 天。如果檢測到前 3 天的記錄檔總大小超過 30 MB,前 3 天的日誌都會被刪除。

  • 檔案大小限制:預設不超過 100 MB。超過 100 MB 後,會按時間順序從前到後刪除前一半大小的日誌。例如有 120 MB 的日誌,會刪除 60 MB。

擷取線上使用者診斷記錄

應用發布上線後,要擷取用戶端本地診斷記錄排查問題,可通過 mPaaS 控制台下髮指令擷取相關診斷記錄。具體操作,查看 移動分析 > 日誌拉取