本文介紹如何通過手動集成方式添加依賴接入遠程日志服務。
接入遠程日志服務的iOS SDK可采用Pod集成和手動集成2種方式添加依賴。推薦使用Pod集成方式添加依賴,可大幅簡化接入操作。
如需使用Pod集成方式添加依賴,操作方法請參見iOS SDK接入(Pod集成)。
前提條件
已創建工作空間/應用。
已下載iOS應用配置文件。
已下載SDK包,并確保包文件完整。SDK包文件列表如下:
AlicloudHAUtil.framework
AlicloudTLog.framework
AlicloudUtils.framework
AliHACore.framework
AliHALogEngine.framework
AliHAMethodTrace.framework
AliHAProtocol.framework
AliHASecurity.framework
AliyunOSSiOS.framework
RemoteDebugChannel.framework
TBJSONModel.framework
TBRest.framework
TRemoteDebugger.framework
UTDID.framework
UTMini.framework
ZipArchive.framework
具體內容請參見下載SDK。
使用限制
僅支持iOS 8.0及以上的App。
日志在手機端上最多存儲7天。
接入概述
添加依賴
1:在Xcode中,將SDK目錄中的framework文件拖入Target目錄,在彈出框勾選Copy items if needed
選項。
2:打開Build Phases > Link Binary With Libraries,添加Xcode自帶的公共包文件:
libc++.tbd
libresolv.tbd
SystemConfiguration.framework
接入服務
1:將iOS配置文件AliyunEmasServices-Info.plist
拷貝至項目根目錄。
iOS配置文件獲取方式請參見下載配置文件。
2:在AppDelegate.m
文件中引入頭文件:
#import <AlicloudTLog/AlicloudTlogProvider.h>
#import <AlicloudHAUtil/AlicloudHAProvider.h>
#import <TRemoteDebugger/TRDManagerService.h>
3:在AppDelegate.m
文件的application:didFinishLaunchingWithOptions
方法中,添加代碼段,初始化SDK。
NSString *appVersion = @"x.x"; //配置項:App版本
NSString *channel = @"xx"; //配置項:渠道標記
NSString *nick = @"xx"; //配置項:用戶昵稱
[[AlicloudTlogProvider alloc] autoInitWithAppVersion:appVersion channel:channel nick:nick];
[AlicloudHAProvider start];
[TRDManagerService updateLogLevel:TLogLevelXXX]; //配置項:控制臺可拉取的日志級別
參數說明:
參數 | 說明 |
appVersion | 用于指定App的版本,上報至服務端,進行版本區分。 【數據類型】字符串 【格式要求】自定義 【取值范圍】任意長度。 說明 該參數值將在控制臺顯示為下拉列表選項,建議短小凝練。 【是否必選】是 【是否可為空】否 【默認值】無 【大小寫敏感】是。例如,vx.x和Vx.x不是一個版本。 【字符類型】英文大小寫、數字。 說明 該參數不支持中文字符、特殊字符。 【示例】 |
channel | 用于指定渠道標識,上報至服務端,進行渠道區分。 【數據類型】字符串 【取值范圍】任意長度 【是否必選】是 【是否可為空】否 【默認值】無 【字符類型】英文大小寫、數字。 說明 該參數不支持中文字符、特殊字符。 【示例】 |
nick | 用于指定用戶昵稱,上報至服務端,進行用戶區分。后續可能依據該參數,進行數據檢索。 【數據類型】字符串 【取值范圍】任意長度 【是否必選】是 【是否可為空】否 【默認值】無 【字符類型】英文大小寫、數字。 說明 該參數不支持中文字符、特殊字符。 【命名規范】自定義 【示例】 |
TLogLevelXXX | 用于設置控制臺可拉取的日志級別。日志級別說明請參見基本概念。 【數據類型】枚舉型 【取值范圍】
【是否必選】否 【默認取值】TLogLevelInfo 【示例】 |
推薦使用autoInitWithAppVersion
接口接入服務。如需使用initWithAppKey
接口接入服務,須手動配置appKey
/secret
/tlogRsaSecret
參數。
打開iOS配置文件,查詢參數取值:
參數 | 配置文件字段 | 說明 |
appKey | emas.appKey | App標識。 |
secret | emas.appSecret | App認證信息。 |
tlogRsaSecret | appmonitor.tlog.rsaSecret | 遠程日志公鑰。 |
執行編譯
1:在項目的Build Setting中,將Allow Non-modular Includes In Framework Modules
設置為YES
。
2:執行編譯。
編譯過程中如出現
duplicate symbol
類型錯誤,確認本地依賴與CocoaPods管理的依賴是否重復;如是,則刪除本地依賴。如同時使用其他阿里云產品,可能會因為依賴中存在UTDID沖突,造成編譯失敗。解決辦法請參見SDK UTDID沖突解決方案
打印日志
1:如業務流程觸發日志輸出,需引入頭文件:
#import <TRemoteDebugger/TLogBiz.h>
#import <TRemoteDebugger/TLogFactory.h>
#import <TRemoteDebugger/TRDManagerService.h>
2:在適當位置添加代碼,輸出日志信息。示例代碼:
TLogBiz *log = [TLogFactory createTLogForModuleName:@"YourModuleName"];
[log error:@"error message"];
[log warn:@"warn message"];
[log debug:@"debug message"];
[log info:@"info message"];
選項 | 說明 |
YourModuleName | 指定保存日志信息的模塊的名稱。 |
error/warn/debug/info message | 根據實際場景,區分級別輸出日志信息,便于后續按照級別進行日志信息查詢。日志級別說明請參見基本概念。 |
樣例代碼
遠程日志服務iOS SDK接入工程樣例請參見Demo工程。