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天。

步骤一:添加依赖

  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拷贝至项目根目录。

  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]; //控制台可拉取的日志级别。

    TLogLevelXXX:设置控制台可拉取的日志级别。日志级别说明,请参见术语解释

    • TLogLevelError:拉取Error级别的日志。

    • TLogLevelWarn:拉取Warn/Error级别的日志。

    • TLogLevelInfo(默认):拉取Warn/Error/Info级别的日志。

    • TLogLevelDebug:拉取Warn/Error/Info/Debug级别的日志。

    说明

    推荐使用autoInitWithAppVersion接口接入服务。如需使用initWithAppKey接口接入服务,须手动配置appKey/secret/tlogRsaSecret参数。

步骤三:执行编译

  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

    根据实际场景,区分级别输出日志信息,便于后续按照级别进行日志信息查询。日志级别说明,请参见术语解释

(可选)步骤五:上报日志

  1. 如业务流程触发日志输出,需引入以下头文件:

    #import <AlicloudTLog/AlicloudTlogProvider.h>
  2. 在适当位置添加代码,主动上报当日日志信息。

    示例代码:

    [AlicloudTlogProvider uploadTLog:@"COMMENT"] 

    COMMENT:上报日志时设置的备注信息。可用于记录待定位的问题。

    说明
    • 函数用于主动上报当日缓存的日志信息。

    • 主动上报时系统会删除历史缓存日志,仅上报最新缓存的日志信息,避免相同日志重复上报。

    • 该接口需要使用最新版本的SDK,版本号ALICLOUDTLOG_VERSION @"1.0.1.1"。

样例代码

远程日志服务iOS SDK接入工程样例参见:Demo工程

阿里云首页 应用实时监控服务 相关技术圈