本文介绍如何使用Pod集成方式接入iOS应用数据到日志服务移动运维监控。移动运维监控用于实时监控App崩溃等问题,并且支持智能分析,帮助您低成本、高效率地发现App应用中的各类隐患。

前提条件

已创建移动监控应用。具体操作,请参见添加应用

步骤一:通过CocoaPods集成

  1. 在工程的Podfile中添加如下内容。
    pod 'AliyunLogProducer', '2.3.0', :subspecs => ['Bricks', 'CrashReporter']

    接入iOS应用数据所涉及的依赖包说明如下表所示。

    库文件 说明
    AliyunLogProducer 核心SDK,用于采集iOS应用的数据到日志服务。
  2. 保存并执行pod install命令。
  3. 使用后缀为.xcworkspace的文件打开工程。

步骤二:配置接入服务

  1. 在工程的AppDelegate.m文件导入头文件。
    #import <AliyunLogProducer/AliyunLogProducer.h>
  2. AppDelegate.m文件的application:(UIApplication *)application didFinishLaunchingWithOptions方法中初始化SDK。
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        
        SLSConfig *config = [[SLSConfig alloc] init];
        [config setDebuggable:YES];
        [config setEndpoint:endpoint];
        [config setAccessKeyId:accessKeyId];
        [config setAccessKeySecret:accessKeySecret];
        [config setPluginAppId:pluginAppId];
        [config setPluginLogproject:pluginLogproject];
    
        
        SLSAdapter *slsAdapter = [SLSAdapter sharedInstance];
        [slsAdapter addPlugin:[[SLSCrashReporterPlugin alloc]init]];
        [slsAdapter initWithSLSConfig:config];
         
        return YES;
    }

    其中,SLSConfig类和SLSAdapter类说明如下:

    • SLSConfig
      SLSConfig类定义了关键的配置字段。
      类型 字段 示例值 说明
      调试参数 debuggable true 是否调试日志信息。
      说明 发布时,建议关闭,即配置为[config setDebuggable:NO]。
      配置参数 appVersion App版本号。建议保持默认配置。
      appName App名称。建议保持默认配置。
      配置参数 endpoint cn-hangzhou.log.aliyuncs.com 日志服务Project所属的Endpoint。如何获取,请参见公网服务入口
      注意 只支持公网服务入口。
      accessKeyId LTAI****eYDw 日志服务Project的AccessKey ID。如何获取,请参见访问密钥
      accessKeySecret lrRq****GOVM 日志服务Project的AccessKey Secret。如何获取,请参见访问密钥
      securityToken 124f****a369 日志服务Project的访问密钥Token。使用STS方式接入时,需要配置。如何获取,请参见AssumeRole
      pluginAppId sls-****d60f 您在日志服务移动运维监控平台上所添加的应用ID。更多信息,请参见获取应用ID
      pluginLogproject sls-ayasls-demo 您在日志服务移动运维监控平台上添加应用时所绑定的日志服务Project。更多信息,请参见添加应用
      自定义参数 channel Apple 自定义参数,App渠道标识。
      channelName Apple 自定义参数,App渠道名称。
      userNick Tom 自定义参数,用户昵称。
      longLoginNick Tom 自定义参数,用户昵称,最后一次登录的用户昵称。
      userId 423423 自定义参数,用户ID。
      longLoginUserId 423423 自定义参数,用户ID,最后一次登录的用户ID。
      loginType pswd 自定义参数,用户登录类型。
      业务参数 [config addCustomWithKey:@"customKey" andValue:@"testValue"]; [config addCustomWithKey:@"action_name" andValue:@"action_args"]; 用于添加业务参数,键值对形式。
      • customKey:具体的参数名。
      • testValue:具有的参数值。
    • SLSAdapter
      SLSAdapter类是插件的管理类。
      方法 说明
      addPlugin 增加一个插件。
      removePlugin 移除一个插件。
      initWithSLSConfig 初始化所有插件。
      注意 initWithSLSConfig方法会初始化所有的插件,请勿单独调用插件的initWithSLSConfig方法。调用initWithSLSConfig方法前,需先调用addPlugin方法。
      resetSecurityToken(accessKeyId, accessKeySecret, securityToken) 更新STS token。
      注意 resetSecurityToken或updateConfig需要在调用initWithSLSConfig方法后再调用。
      updateConfig(slsConfig) 更新SLSConfig配置信息,仅限自定义参数。
  3. 通过STS方式配置setAccessKeyIdsetAccessKeySecretsetSecurityToken信息。
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        
        SLSConfig *config = [[SLSConfig alloc] init];
        [config setEndpoint:endpoint];
        // 初始化时,传入STS AccessKey信息。
        [config setAccessKeyId:accessKeyId];
        [config setAccessKeySecret:accessKeySecret];
        [config setSecurityToken:token];
        
        [config setPluginAppId:pluginAppId];
        [config setPluginLogproject:pluginLogproject];
    
        
        SLSAdapter *slsAdapter = [[SLSAdapter alloc] init];
        [slsAdapter addPlugin:[[SLSCrashReporterPlugin alloc]init]];
        [slsAdapter initWithSLSConfig:config];
        
        // token过期后,需要及时更新SLSAdapter的token。
        [slsAdapter resetSecurityToken:accessKeyId secret:accessKeySecret token:token];
        return YES;
    }

步骤三:接入验证

  1. 编写测试代码,模拟或触发移动端崩溃。
    [self performSelector:@selector(die_die)];
  2. 重启移动端,然后等待大概2分钟后,您可以在控制台查看是否显示崩溃信息。
    如果显示崩溃数据,表示数据接入成功。

后续步骤