You need to enable JavaScript to run this app.
导航

iOS APPExtension SDK接入

最近更新时间2023.09.28 16:32:02

首次发布时间2022.03.23 16:40:22

应用性能监控全链路版的iOS APPExtension SDK为无侵入式,本文介绍iOS APPExtension SDK详细的接入步骤。

注意

  • iOS APPExtension SDK仅限中国大陆应用使用(不包括港澳台地区)。
  • iOS APPExtension SDK仅支持崩溃分析功能。
  • 调用SDK初始化接口不会采集用户信息,调用SDK启动接口会开始采集用户信息,请确保采集用户信息之前已经获得用户授权SDK隐私政策

前提条件

iOS APPExtension性能监控依赖Host APP性能监控,详情请参见iOS SDK接入

注意

初始化代码需要配置RangersAPMConfig对象的groupID属性,值为和扩展程序一致的APP GroupID。

#import <RangersAPM.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    RangersAPMConfig *apmConfig = [RangersAPMConfig configWithAppID:@"{{app_id}}" appToken:@"{{app_token}}"];
    apmConfig.channel = @"App Store";
    apmConfig.groupID = @"{{groupID}}";
    [RangersAPM startWithConfig:apmConfig];
  
    return YES;
}

步骤一:获取SDK包

  1. 在Podfile中扩展程序的target下添加如下代码。

    source 'https://github.com/volcengine/volcengine-specs.git'
    pod 'RangersAPMForExtension', '1.0.5'
    
  2. 执行以下命令,安装SDK。

    pod install
    

步骤二:初始化

在扩展程序生命周期(用户同意隐私政策之后)的合适时机添加如下初始化代码。

// 请先在 Capability 中添加 App Groups,然后修改 groupID
RangersAPMForAPPExtensionConfig *extensionConfig = [RangersAPMForAPPExtensionConfig configWithAppID:@"{{app_id}}" groupID:@"{{groupID}}"]; 

步骤三:启动SDK,开启数据采集

在扩展程序生命周期(用户同意隐私政策之后)的合适时机添加如下启动代码,extensionConfig为初始化时生成的配置。

[RangersAPMForAPPExtension startWithConfig:extensionConfig];

注意

SDK启动代码仅首次调用有效。

步骤四:验证数据上报

您可以根据需要,按照以下各模块说明,检查对应模块是否接入成功。

开启debug日志

开启Debug日志输出功能后,SDK在初始化成功、上报成功等关键事件发生时,会向Xcode控制台输出日志,帮助您对SDK的接入和上报进行验证。
开启Debug日志输出示例代码:

#import <RangersAPMForAPPExtension.h>

[RangersAPMForAPPExtension allowDebugLogUsingLogger:^(NSString * _Nonnull log) {
      NSLog(@"APMPlus Debug Log : %@", log);
}];
  • 支持通过修改block自定义日志输出格式。
    以下代码示例是SDK内部默认的输出格式,如果传入nil,SDK会使用默认的格式输出日志。

    [RangersAPMForAPPExtension allowDebugLogUsingLogger:nil];
    
  • 请将以下示例代码在RangersAPM start方法之前初始化,否则对于一些同步事件可能无法输出日志。

    #if DEBUG
    [RangersAPMForAPPExtension allowDebugLogUsingLogger:^(NSString * _Nonnull log) {
        NSLog(@"APMPlus : %@", log);
    }];
    #endif
    
    [RangersAPMForAPPExtension startWithGroupID:@"{{groupID}}" forAppID:@"{{app_id}}"];  //请先于此代码开启debug日志
    

崩溃分析

测试用例

通过测试用例,您可以验证SDK功能是否已正确开启,您可以自己在代码中添加测试用例。
下面的代码会触发NSException类型的Crash。更多类型,请参见Example工程

NSArray *array = [NSArray array];
[array objectAtIndex:10];
  1. 在Xcode中修改Build Configuration为Release,然后通过Run把Host APP安装到模拟器或者真机。
  2. 在模拟器或者真机中打开扩展程序,然后等待崩溃代码执行,扩展程序闪退。

    注意

    不要直接通过Xcode Run启动扩展程序,这种方式触发的崩溃无法捕获。

  3. 启动Host APP会立即上报上一次启动期间Host APP和扩展程序发生的崩溃。
    您可以通过Xcode Run启动APP,在控制台可以看到上报成功的日志。

debug日志

完成开启debug日志后,根据输出日志验证模块是否接入成功。

日志内容

说明

Crash-Monitor start successfully!

崩溃监控模块启动成功