iOS SDK接入(手动集成)
本文介绍如何通过手动集成方式添加依赖接入远程日志服务。
接入远程日志服务的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
使用限制
仅支持iOS 8.0及以上的App。
日志在手机端上最多存储7天。
步骤一:添加依赖
在Xcode中,将SDK目录中的framework文件拖入Target目录,在弹出框勾选
Copy items if needed
选项。打开Build Phases > Link Binary With Libraries,添加Xcode自带的公共包文件:
libc++.tbd
libresolv.tbd
SystemConfiguration.framework
步骤二:接入服务
将前提条件获取的iOS配置文件
AliyunEmasServices-Info.plist
拷贝至项目根目录。在
AppDelegate.m
文件中引入以下头文件:#import <AlicloudTLog/AlicloudTlogProvider.h> #import <AlicloudHAUtil/AlicloudHAProvider.h> #import <TRemoteDebugger/TRDManagerService.h>
在
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]; //控制台可拉取的日志级别。
TLogLevelXXX:设置控制台可拉取的日志级别。日志级别说明,请参见术语解释。
TLogLevelError:拉取Error级别的日志。
TLogLevelWarn:拉取Warn/Error级别的日志。
TLogLevelInfo(默认):拉取Warn/Error/Info级别的日志。
TLogLevelDebug:拉取Warn/Error/Info/Debug级别的日志。
说明推荐使用
autoInitWithAppVersion
接口接入服务。如需使用initWithAppKey
接口接入服务,须手动配置appKey
/secret
/tlogRsaSecret
参数。
步骤三:执行编译
在项目的Build Setting中,将
Allow Non-modular Includes In Framework Modules
设置为YES
。执行编译。
说明编译过程中如出现
duplicate symbol
类型错误,确认本地依赖与CocoaPods管理的依赖是否重复;如是,则删除本地依赖。如同时使用其他阿里云产品,可能会因为依赖中存在UTDID冲突,造成编译失败。解决办法参见:SDK UTDID冲突解决方案。
步骤四:打印日志
如业务流程触发日志输出,需引入以下头文件:
#import <TRemoteDebugger/TLogBiz.h> #import <TRemoteDebugger/TLogFactory.h> #import <TRemoteDebugger/TRDManagerService.h>
在适当位置添加代码,输出日志信息。
示例代码:
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
根据实际场景,区分级别输出日志信息,便于后续按照级别进行日志信息查询。日志级别说明,请参见术语解释。
(可选)步骤五:上报日志
如业务流程触发日志输出,需引入以下头文件:
#import <AlicloudTLog/AlicloudTlogProvider.h>
在适当位置添加代码,主动上报当日日志信息。
示例代码:
[AlicloudTlogProvider uploadTLog:@"COMMENT"]
COMMENT:上报日志时设置的备注信息。可用于记录待定位的问题。
说明函数用于主动上报当日缓存的日志信息。
主动上报时系统会删除历史缓存日志,仅上报最新缓存的日志信息,避免相同日志重复上报。
该接口需要使用最新版本的SDK,版本号ALICLOUDTLOG_VERSION @"1.0.1.1"。
样例代码
远程日志服务iOS SDK接入工程样例参见:Demo工程