跳到主要内容

CrashSight SDK 升级指引


在4.2.18->4.3.1这次升级中,CrashSight对Unity和Unreal插件接口做了整合,使得跨平台项目可以使用同一套代码接入多个平台。但是这个改动也造成了接口变更。本文档将介绍Unity和Unreal项目升级SDK时的注意事项。

CrashSight SDK的版本号形如4.x.y或4.x.y.z,其中z为构建号,通常情况下可忽略。在升级SDK前,请留意版本号变化:如果仅y发生变化,x不变,只需将之前使用的SDK完全删除,然后将新SDK复制到项目中即可;如果x改变(即4.2.*更新到4.3.*),则须仔细阅读版本更新注意事项章节。

查看SDK版本号

以下方法均可查看SDK版本号:

  1. 下载SDK后,查看压缩包的名称,以及解压后目录的名称,其中包含CrashSight SDK的版本号。
  2. 查看iOS库文件中的CrashSight.h,第14行的GCLOUD_VERSION_CRASHSIGHT宏定义包含CrashSight SDK的版本号。
    Unity SDK中位于Assets\Plugins\iOS\CrashSight\CrashSight.framework\Headers\CrashSight.h
    Unreal SDK中位于Plugins\CrashSight\Source\CrashSightLib\iOS\CrashSight.embeddedframework.zip\CrashSight.embeddedframework\CrashSight.framework\Headers\CrashSight.h
  3. 查看任意一条上报信息,问题详情-跟踪数据中包含“SDK版本号”字段。此方法仅适用于移动端,Windows端上传的“SDK版本号”是dll版本号。

版本更新注意事项

1. SDK文件替换

在更新SDK时,请将原来的SDK完全删除,然后将新SDK复制到项目中。请勿直接覆盖。

2. 接口类迁移

Unreal接入的项目从4.2.*更新到4.3.*版本时,Windows端接口从CrashSight::CrashSightBridge类迁移到了GCloud::CrashSight::CrashSightAgent类。请将#include "CrashSightBridgeWin.h" 替换为#include "CrashSightAgent.h",并修改所有接口调用的类名。绝大多数接口名和参数都没有变化,发生变更的接口会在后文中列出。

3. Windows端的初始化方式变更(可选)

4.3.*版本中,Windows端兼容了类似移动端的初始化方式:
Unity:

#if DEBUG
CrashSightAgent.ConfigDebugMode (true);
#endif
CrashSightAgent.ConfigCrashServerUrl (CrashSightUploadUrl);
CrashSightAgent.InitWithAppId(CrashSightAppID);

Unreal:

#if DEBUG
CrashSightAgent::ConfigDebugMode (true);
#endif
CrashSightAgent::ConfigCrashServerUrl("UploadUrl");
CrashSightAgent::InitWithAppId("AppID");

同时也保留了旧版本中使用CrashSightConfig64.dat文件传入appid和url的初始化方式。更新时可酌情更改初始化代码。

4. 接口名、接口参数变动

设置自定义日志路径

Windows端接口SetCustomLogDir更名为SetLogPath

Unity:

// 更新前
public static void SetCustomLogDir(string path)
// 更新后
public static void SetLogPath(string logPath);

Unreal:

// 更新前
static void SetCustomLogDir(const char *log_path);
// 更新后
static void SetLogPath(const char* log_path);

添加自定义数据

Unreal Windows端接口SetUserValue更名为AddSceneData

// 更新前
static void SetUserValue(const char *key, const char *value);
// 更新后
static void AddSceneData(const char* key, const char* value);

设置自定义日志上报级别

对Unity的接口做了整合,具体如下:

// 更新前有两个接口,功能相同
public static void ConfigAutoReportLogLevel(CSLogSeverity level)
public static void ConfigCrashReporter(int type, int logLevel) // type是无效参数
// 更新后
public static void ConfigCrashReporter(int logLevel);

5. 其它问题

如果升级过程中遇到问题,可以查阅对应版本的文档,或联系CrashSight项目组寻求解答。
Unity 4.2.x版本接入文档:Unity接入指引
Unity 4.3.x版本接入文档:Unity接入指引
Unreal 4.2.x版本接入文档:Unreal接入指引
Unreal 4.3.x版本接入文档:Unreal接入指引