本文介绍应用如何接入iOS、完成自定义数据的配置以及获取自定义日志数据的详细步骤。
在Podfile中,添加如下示例代码,获取SDK包。
platform :ios, '10.0' source 'https://github.com/volcengine/volcengine-specs.git' pod 'RangersAPM', '5.1.2', :subspecs => [ 'Crash', 'WatchDog', 'OOM', 'LAG', 'UserException', 'Monitors', 'UITrackers', 'HybridPro', 'MemoryGraph', 'NetworkPro', 'EventMonitor', 'SessionTracker', 'APMLog', 'CrashProtector', 'CPUException', 'MetricKit', 'Disk', 'GWPASan', 'Coredump', 'CloudCommand', 'CN' # 与 Global 必须二选其一 'Global' # 与 CN 必须二选其一 ]
说明
执行以下命令,安装SDK。
pod install
说明
AppDelegate.m
的application didFinishLaunchingWithOptions:
方法中,或者在用户同意隐私政策之后的合适时机,进行初始化SDK的操作。添加以下示例代码,初始化SDK。
#import <RangersAPM.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RangersAPMConfig *apmConfig = [RangersAPMConfig configWithAppID:@"{{app_id}}" appToken:@"{{app_token}}"]; apmConfig.channel = @"App Store"; /** 首次启动由于没有获取到配置,无法确定需要开启哪些功能模块。可以配置此属性,来决定首次启动默认需要开启的功能模块,仅对首次启动生效,一旦拉取到配置,下次启动就会先读取本地缓存的配置来决定。 1. 建议默认开启崩溃分析(RangersAPMCrashMonitorSwitch)、启动分析(RangersAPMLaunchMonitorSwitch)、网络分析(RangersAPMNetworkMonitorSwitch),避免一些和首次启动强相关的数据丢失. 2. 配置默认开启模块后,新设备首次启动会默认打开这些模块,可能会出现平台上关闭了这些模块,但是依然有数据上报的情况,可能会给您的事件量造成意外的消耗;请根据您的应用情况灵活配置。 3. 配置多个模块可以参考这种写法:RangersAPMCrashMonitorSwitch | RangersAPMNetworkMonitorSwitch | RangersAPMLaunchMonitorSwitch */ apmConfig.defaultMonitors = RangersAPMCrashMonitorSwitch; return YES; }
说明
{{app_id}}
和{{app_token}}
须替换为您创建的应用对应的AppID和AppToken,具体请参见如何查询AppID和AppToken?。
注意
AppDelegate.m
的application didFinishLaunchingWithOptions:
方法中,或者在用户同意隐私政策之后的合适时机,完成启动SDK的操作。添加以下示例代码,启动SDK并开启数据采集。
#import <RangersAPM.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 使用初始化阶段获取的config启动SDK [RangersAPM startWithConfig:apmConfig]; [RangersAPM setUserID:@"xxxx"]; [RangersAPM setDeviceID:@"xxxx"]; return YES; }
说明
如果需要使用自定义deviceID,需修改apmConfig的相关参数,具体请参见获取设备数与用户数。
自定义日志需要引入子库APMLog,通过使用SDK提供的接口进行打点,可以记录一些App运行期间产生的日志。自定义日志的日志类型分成用户自定义日志和APMPlus日志。
用户自定义日志是用户根据业务打点的日志数据。
示例代码:
//无论使用哪类接口,首先都需要先调用如下接口开启Alog功能 //注意:仅在App启动时调用一次即可 #import "RangersAPM+ALog.h" [RangersAPM setALogEnabled]; //启用Alog [RangersAPM enableConsoleLog]; //同时在控制台输出日志 //Objective-C 可以使用如下接口进行日志打点 #import "RangersAPM+ALog.h" //第一个参数标识当前日志的业务、场景等信息; //第二个参数为日志具体信息,可以使用format类型,如果使用format,需要继续传入对应的参数 RANGERSAPM_ALOG_DEBUG(@"Business", @"version : %@", [self version]); //Debug类日志 RANGERSAPM_ALOG_INFO(@"Business", @"version : %@", [self version]); // Info类日志 RANGERSAPM_ALOG_WARN(@"Business", @"version : %@", [self version]); //Warn类日志 RANGERSAPM_ALOG_ERROR(@"Business", @"version : %@", [self version]); //Error类日志 //C/C++ 可以使用如下接口进行日志打点 #import "RangersAPM_ALog.h" //第一个参数标识当前日志的业务、场景等信息; //第二个参数为日志具体信息,可以使用format类型,如果使用format,需要继续传入对应的参数 RANGERSAPM_ALOG_DEBUG_C("Business", "version : %s", version()); RANGERSAPM_ALOG_INFO_C("Business", "version : %s", version()); RANGERSAPM_ALOG_WARN_C("Business", "version : %s", version()); RANGERSAPM_ALOG_ERROR_C("Business", "version : %s", version()); //Swift 可以使用如下接口进行日志打点 #import "RangersAPM+ALog.h" //第一个参数为日志具体信息 //tag 标识当前日志的业务、场景等信息; //fileName 为当前所在文件名,可以参考示例传入 #file //funcName 为当前所在方法名,可以参考示例传入 #function //line 为当前所在文件的行号,可以参考示例传入 #line RangersAPM.debugALog("alogtest", tag: "Business", fileName: #file, funcName: #function, line: #line) RangersAPM.infoALog("alogtest", tag: "Business", fileName: #file, funcName: #function, line: #line) RangersAPM.warnALog("alogtest", tag: "Business", fileName: #file, funcName: #function, line: #line) RangersAPM.errorALog("alogtest", tag: "Business", fileName: #file, funcName: #function, line: #line)
您可以通过以下不同的方式将自定义日志上报到服务端。
在SDK上报配置页面配置崩溃时上报的开关。具体操作,请参见SDK上报配置。
查看自定义日志。
在SDK上报配置页面配置主动上报的开关。具体操作,请参见SDK上报配置。
在业务代码中,调用主动上报的方法。
调用方法一或者方法二,logtype传入为RangersAPMALogTypeCustom
。
在自定义日志页面,通过事件类型主动上报筛选后查看查看自定义日志。
新建回捞任务。
回捞日志前需要先新建自定义日志的回捞任务。
在回捞页面,筛选时间、系统或者输入任务名称和创建人搜索回捞任务,然后查看回捞日志。