本文介绍如何使用Pod集成方式接入iOS应用数据到日志服务移动运维监控。移动运维监控用于实时监控App崩溃等问题,并且支持智能分析,帮助您低成本、高效率地发现App应用中的各类隐患。
前提条件
已创建移动监控应用。具体操作,请参见添加应用。
步骤一:集成SDK
(推荐)通过CocoaPods集成
在Xcode工程的Podfile中添加如下内容。
本文以AliyunLogProducer 3.1.14为例。更多信息,请参见Aliyun Log iOS Release。
// 添加aliyun-specs source。 source 'https://github.com/aliyun/aliyun-specs.git' // 添加CocoaPods source。 source 'https://github.com/CocoaPods/Specs.git' pod 'AliyunLogProducer', '~> 3.1.14', :subspecs => ['CrashReporter']保存并执行
pod install --repo-update命令。使用后缀为.xcworkspace的文件打开工程。
通过SDK文件方式集成
解压SDK文件后,将如下framework添加到项目中。
AliyunLogCore.framework、AliyunLogCrashReporter.framework、AliyunLogOT.framework、AliyunLogProducer.framework、WPKMobi.xcframework。
在Other Linker Flags中,添加-Objc。

添加如下系统依赖库。
CoreGraphics.framework、SystemConfiguration.framework、libc++、libz。

步骤二:配置接入服务
在工程的AppDelegate.m文件导入头文件。
#import <AliyunLogProducer/AliyunLogProducer.h>在AppDelegate.m文件的application:(UIApplication *)application didFinishLaunchingWithOptions方法中初始化SDK。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. SLSCredentials *credentials = [SLSCredentials credentials]; credentials.endpoint = @"your endpoint"; credentials.project = @"your project"; credentials.accessKeyId = @"your access key id"; credentials.accessKeySecret = @"your access key secret"; credentials.instanceId = @"your instance id"; [[SLSCocoa sharedInstance] initialize:credentials configuration:^(SLSConfiguration * _Nonnull configuration) { // 开启崩溃捕获功能。 configuration.enableCrashReporter = YES; // 开启卡顿监控功能。 configuration.enableBlockDetection = YES; }]; return YES; }其中,SLSCredentials 类和SLSCocoa类说明如下:
SLSCredentials
SLSCredentials类定义了关键的配置字段。
类型
字段
示例值
说明
配置参数
instanceId
sls-****d60f
您在日志服务移动运维监控平台上所添加的应用ID。更多信息,请参见获取应用ID。
endpoint
https://cn-hangzhou.log.aliyuncs.com
日志服务Project所在地域的访问域名,此处必须添加
https://前缀。如何获取,请参见公网。重要只支持公网服务入口。
project
sls-ayasls-demo
您在日志服务移动运维监控平台上添加应用时所绑定的日志服务Project。更多信息,请参见添加应用。
鉴权参数
accessKeyId
LTAI****eYDw
日志服务Project的AccessKey ID。如何获取,请参见访问密钥。
accessKeySecret
lrRq****GOVM
日志服务Project的AccessKey Secret。如何获取,请参见访问密钥。
securityToken
124f****a369
日志服务Project的访问密钥Token。使用STS方式接入时,需要配置。如何获取,请参见AssumeRole。
SLSConfiguration
SLSConfiguration类提供了SDK初始化额外参数配置的接口。
类型
字段/方法
说明
配置方法
enableCrashReporter
是否启用崩溃捕获功能。
enableBlockDetection
是否开启卡顿监控功能。
spanProvider
自定义Span的Resource和Attribute信息。
环境配置
env
App的环境信息,默认为default。
一般开发环境配置为dev;线上环境配置为prod。
SLSCocoa
SLSCocoa类提供了SDK初始化相关的全部参数配置、用户信息配置等接口。
类别
字段/方法
说明
单例
sharedInstance
获取SLSCocoa单例。
初始化
initialize:configuration:
初始化SLSCocoa。
凭证更新
setCredentials:
更新Credentials凭证信息,支持热更新。
配置方法
setUserInfo:
更新用户信息。
通过STS方式配置credentials.accessKeyId、credentials.accessKeySecret和credentials.securityToken信息。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. SLSCredentials *credentials = [SLSCredentials credentials]; // instanceId为必填参数。 credentials.instanceId = @"your instance id"; // 以下参数可不填。 credentials.endpoint = @"your endpoint"; credentials.project = @"your project"; credentials.accessKeyId = @"your access key id"; credentials.accessKeySecret = @"your access key secret"; [[SLSCocoa sharedInstance] initialize:credentials configuration:^(SLSConfiguration * _Nonnull configuration) { // 开启崩溃捕获功能。 configuration.enableCrashReporter = YES; // 开启卡顿监控功能。 configuration.enableBlockDetection = YES; }]; return YES; } // 可以在请求相关信息后,发起调用。 - (void) updateSLS { SLSCredentials *credentials = [SLSCredentials credentials]; // (可选)更新AccessKey。 credentials.accessKeyId = @"your access key id"; credentials.accessKeySecret = @"your access key secret"; //针对通过STS方式获取的AccessKey,需配置如下内容。 credentials.securityToken = @"your access security token"; // (可选)更新Project等信息。 credentials.endpoint = @"your endpoint"; credentials.project = @"your project"; [[SLSCocoa sharedInstance] setCredentials:credentials]; }
步骤三:接入验证
编写测试代码,模拟或触发移动端崩溃。
[self performSelector:@selector(die_die)];- 重启移动端,然后等待大概2分钟后,您可以在日志服务控制台的目标Logstore中查看崩溃信息。在目标移动运维监控实例的自定义查询页面,单击查询/分析。如果显示有日志,则表示接入数据成功。
