崩溃分析

本文档指导开发者完成阿里云移动监控iOS SDK的崩溃分析的功能验证。

1. 崩溃上报

  1. 编写测试代码,模拟/触发移动端崩溃。例如:

    重要

    请勿在Xcode 调试器下运行App,SDKXcode 调试器场景中不再捕获崩溃。

    NSMutableArray *array = @[];
    [array addObject:nil]; // crash
    let someNilString: String? = nil
    let forcedValue: String = someNilString!
    print("Value: \(forcedValue)")
  2. 触发崩溃后,大概2分钟后在控制台-崩溃页面查看

    说明
    • 崩溃数据从采集到上传到控制台显示,存在大约2~3分钟延迟;

    • 特殊场景下,应用重新启动后上传崩溃数据;

    image

2. 自定义维度

  1. 编写测试代码,调用SDK接口自定义维度。例如:

    #import "AlicloudApmCore/AlicloudApmCore.h"
    
    [[EAPMApm defaultApm] setCustomValue:@"value" forKey:@"key"];
    
    [[EAPMApm defaultApm] setCustomKeysAndValues:@{
        @"key1":@"value1",
        @"key2":@"value2",
    }];
    #import "AlicloudApmCore/AlicloudApmCore.h"
    
    let apm = EAPMApm.defaultApm()
    apm.setCustomValue("value", forKey: "key")
    apm.setCustomKeysAndValues([
        "key1": "value1",
        "key2": "value2"
    ])
  2. 触发崩溃后,大概2分钟后在控制台-崩溃页面查看,如下图红框所示

    image

3. 自定义异常上报

  1. 编写测试代码,调用SDK接口自定义异常。例如:

    #import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
    
    NSError *error = [NSError errorWithDomain:@"customError" code:10001 userInfo:@{@"errorInfoKey":@"errorInfoValue"}];
    
    [[EAPMCrashAnalysis crashAnalysis] recordError:error userInfo:@{
        @"key1":@"value1",
        @"key2":@"value2",
    }];
    #import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
    
    let crashAnalysis = CrashAnalysis.crashAnalysis()
    let error = NSError(
        domain: "customError",
        code: 10001,
        userInfo: [
            "errorInfoKey": "errorInfoValue",
        ]
    )
    crashAnalysis.record(error: error, userInfo: [
        "key1": "value1",
        "key2": "value2"
    ])
  2. 应用下次启动后,在控制台-自定义异常页面查看。

    image