移动端接入指引
1 移动端CrashSight接入说明
本文是介绍移动端SDK的详细文档,内容包含了iOS和Android两个平台SDK接入的内容,并详细介绍了两个平台所支持的接口. 如果想快速接入,验证平台和SDK功能,建议查看项目菜单中的"接入指南"。引导中已经按项目具体的信息(平台,引擎,国内/海外,AppID)生成了针对此项目的初始化代码,可以直接复制使用。如下图所示:

项目创建:公司外部项目支持自助创建项目,但有免费试用时长。公司内部项目,企业微信联系"CrashSight小助手"开通。
2 iOS SDK集成
2.1 CocoaPods集成
-
在Podfile中添加 pod 'CrashSight'
-
运行pod install 或 pod update 命令
-
从.xcworkspace文件进入工程(而非.xcodeproj文件)
2.2 手动集成
- 在平台成功创建项目后,在侧边栏的“接入指南”中,选择接入方式,然后在“SDK下载及接入”页中下载SDK。如下图所示:

- iOS SDK依赖添加
- 拖拽CrashSight.framework文件到Xcode工程内(请勾选"Copy items if needed"选项)
- 添加依赖库
- libc++.dylib 或 libc++.tdb 用于引入c++标准库
- libz.dylib 或 libz.tdb 用于对上报的数据进行压缩
- Security.framework 用于存储keychain
- SystemConfiguration.framework 用于读取异常发生时的系统信息
- MetricKit.framework 用于获取apple提供的app诊断信息(弱引用,请选择“optional”)
- OSLog.framework 用于获取NSLog日志信息(弱引用,请选择“optional”)
- CFNetwork.framework 用于获取VPN状态
2.3 SDK初始化
2.3.1 Objective-C初始化
-
在工程的AppDelegate.m文件导入头文件
#import <CrashSight/CrashSight.h> -
初始化 在工程AppDelegate.m文件的
application:didFinishLaunchingWithOptions:
方法中初始化
CrashSightConfig* config = [[CrashSightConfig alloc] init];
// 自定义设置上报域名(可选)
config.crashServerUrl = @"http://xxxx";
config.debugMode = true;//打开debug mode
NSString* appId = @"appId";
[CrashSight startWithAppId:appId config:config];
2.3.2 Swift初始化
- 创建一个Objective-C Bridging Header(如果项目中原来没有的话) · 新建一个.h文件 · 找到Build Settings->Swift Compiler-General->Objective-C Bridging Header,将刚刚创建的.h文件的路径填入
- 在Objective-C Bridging Header中导入头文件
#import <CrashSight/CrashSight.h> - 在XXXApp.swift中添加初始化代码
@main
struct XXXApp: App {
init() {
let config = CrashSightConfig();
config.crashServerUrl = "http://xxxx";
config.debugMode = true;
let appId = "appId";
CrashSight.start(withAppId:appId,config:config);
}
...
上报域名
2.4 接入结果测试
在初始化CrashSight的之后,通过按键触发崩溃。 当前iOS移动端还没有添加崩溃测试接口(后续会补充),可以编写一个简单的崩溃触发代码,如非法内存访问:
int* a = NULL;
a[10000] = 5;
- a. 开启Debug模式,初始化CrashSight,并给定合适的配置参数
- b. 联网上报:检查测试设备日志中是否打印“begin to upload <CSAnalyticsLogic” 或者 “cmd: 641”
- c. 崩溃捕获:检查测试设备日志中是否打印“Handle the crash scene in callback”
- d. 上报异常:检查测试设备日志中是否打印“begin to upload <CSCrashLogic” 或者 “cmd: 631”