完成以下步驟進行 iOS 客戶端診斷:
初始化診斷服務
診斷功能在使用之前需要進行初始化:
#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
文件,中間層會實現包裝,升級版本后請檢查工程中是否存在舊版本配置,如果有請移除。下面為新版本應移除的配置。
設置用戶 ID
診斷服務根據 用戶 ID 拉取日志。
在
MPaaSInterface
的實現中通過userId
函數配置用戶 ID。當用戶切換時,即
MPaaSInterface
的userId
函數中配置的值發生變化時,調用以下函數:[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 文件。
查看本地診斷日志
您可以在沙盒目錄下找到診斷日志,如下圖所示。該日志默認不會上報,只有在需要時才通過控制臺下發指令拉取。
保存期限: 默認保留 6 天。如果檢測到前 3 天的日志文件總大小超過 30 MB,前 3 天的日志都會被刪除。
文件大小限制:默認不超過 100 MB。超過 100 MB 后,會按時間順序從前到后刪除前一半大小的日志。例如有 120 MB 的日志,會刪除 60 MB。
獲取在線用戶診斷日志
應用發布上線后,要獲取客戶端本地診斷日志排查問題,可通過 mPaaS 控制臺下發指令獲取相關診斷日志。具體操作,查看 移動分析 > 日志拉取。