借助 App 监控的 SDK,您可以获取完备的移动端崩溃分析监控,具体包括 Crash 监控、Abort 监控、崩溃问题聚合、影响面分析等。

前提条件

  • 已将应用接入 App 监控。请参见创建监控任务
  • 获取应用的 AppKey 和 AppSecret。

    App监控页面中单击目标应用所在行最右侧的查看配置

    查看app配置

    在弹出的对话框中复制 AppKey 和 AppSecret 。

背景信息

本文档适用于使用 cocoaPods 管理依赖的 Xcode 项目,以及支持 iOS 8.0 或以上版本的App。

步骤一:添加依赖

您可以选择 Pod 依赖接入和本地依赖接入两种方式。

  • Pod 依赖接入
    1. 指定官方仓库和阿里云仓库。
      source "https://github.com/CocoaPods/Specs.git"
      source "https://github.com/aliyun/aliyun-specs.git"
    2. 添加依赖。
        pod 'AlicloudCrash' , '~> 1.1.0'

      ~> 为模糊指定版本号方式,~> 1.1.0 表明引用位于 1.1.0 <= version < 1.2.0 之间的最新版本 SDK。

      您可参考Podfile Syntax Reference

    3. 执行 pod update
      说明 如果在 Xcode 9 上出现报错:RuntimeError - [Xcodeproj] Unknown object version.,请将 Project Format 改成 Xcode 8.0-compatible。
  • 本地依赖接入
    1. 单击App监控页面右上角的 SDK下载,下载崩溃分析iOS版对应的 SDK,并拷贝下载包内所有库文件放在项目工程中。
    2. 引入 Framework
      1. 在Xcode中,把下载的 SDK 目录中的 framework 拖入对应 Target 下,在弹出的对话框中勾选 Copy items if needed。framework 如下。
        • AlicloudCrash.framework
        • AliHACore.framework
        • AliHALogEngine.framework
        • AliHAProtocol.framework
        • AlicloudHAUtil.framework
        • AlicloudUtils.framework
        • AlicloudUT.framework
        • CrashReporter.framework
        • JDYThreadTrace.framework
        • TBCrashReporter.framework
        • TBJSONModel.framework
        • TBRest.framework
        • UTDID.framework
        • ZipArchive.framework
      2. Build Phases > Link Binary With Libraries 中,添加以下公共包。
        • libc++.tbd
        • SystemConfiguration.framework

步骤二:接入服务

ARMS 控制台下载 AliyunEmasServices-Info.plist 并拷贝至项目根目录。在 AppDelegate.m 文件的 application:didFinishLaunchingWithOptions: 方法中初始化SDK。引入头文件:

#import <AlicloudCrash/AlicloudCrashProvider.h>
#import <AlicloudHAUtil/AlicloudHAProvider.h>

示例代码:

    NSString *appVersion = @"x.x"; //app 版本,会上报
    NSString *channel = @"xx";     //渠道标记,自定义,会上报
    NSString *nick = @"xx";        //昵称,自定义,会上报

    [[AlicloudCrashProvider alloc] autoInitWithAppVersion:appVersion channel:channel nick:nick]; 
    [AlicloudHAProvider start];

步骤三:编译

如果编译报错,请在项目的 build setting 里设置 Allow Non-modular Includes In Framework Modules 为 YES。

如果出现包含 duplicate symbol 的错误,请确认其他本地依赖和 CocoaPods 管理的依赖是否有重复。如有重复,请删除本地依赖。强烈建议所有依赖都通过 CocoaPods 管理。

结果验证

在完成上述步骤之后,您可以对您的 APP 进行测试,并登录 ARMS 控制台查看数据报表。