PS5接入指引
PS5的崩溃上报依赖索尼官方的上报机制,错误上报使用CrashSight提供的SDK。本文先介绍崩溃上报的接入流程,再介绍使用CrashSight SDK进行错误上报的流程(可以参考Unity SDK开发接入或Unreal SDK开发接入)。
PS5崩溃上报
前置条件
操作者需要拥有索尼的DevNet开发者账号,并且拥有创建相关Product的权限。
接入步骤
1.进入索尼PS5的开发者网站。选择"Titles -> Titles and products"
2.创建"Product Type"是"Back Office Server"的产品。 ●在"Franchis Name"和"Title Name"这一栏请务必保证和Content PipeLine中的相关信息保持一致。
● 填写相应的"Product information",选择"Product Type"为"Back Office Server"。"Product Name"按照示例要求进行填写。
3.创建Back Office Server成功后。选择"Base -> Client ID -> +",配置Client ID。联系CrashSight团队开发提供IP地址。添加到development环境和production环境的Access source IP address当中。
在申请成功之后,"Base -> Client ID"一栏转变为"Production"。
4.将Credential files栏中的信息提供给Crashsight团队。点击"Download Client Secret",需要提供"Client ID"和"Client Scret"。同时提供title Id。
开发版主机额外步骤
- 在PS5主机上,进入"设定"-"Debug Settings"
- 选择"Core Dump"按钮
- 选择"Uploader"按钮
- 将"Enable Uploader"设置为"On", 设置"Uploader URL"(URL请联系CrashSight项目组获取) ,设置"Auto Upload"为"On"。
PS5错误上报
PS5的错误上报需要使用CrashSight SDK的功能,下面分成Unreal与Unity两种引擎的接入进行介绍。
Unreal接入
该部分主要介绍使用CrashSight SDK进行错误上报的流程,关于Unreal SDK的更多详细内容可以参考Unreal SDK开发接入。
SDK接入
- 在平台成功创建项目后,在侧边栏的“接入指南”中,可以下载到与项目平台和引擎相匹配的SDK。如下图所示
- 将位于同一目录中的 Plugins 文件解压,将 Plugins 文件夹中的CrashSight目录拷贝到UE项目根目录下的Plugins目录(如果没有则创建该文件夹)。点击[文件]刷新 [Visual Studio 项目],然后在 Visual Studio 项目中则可以看到CrashSight plugin 代码以及目录结构,如图所示。
- 将CrashSight插件源码和项目源码一起编译,编译完成后则可以在UE编辑器中的编辑插件中看到CrashSight插件,如图所示。
- CrashSight加入依赖项 在项目主模块的Build.cs中添加:
PrivateDependencyModuleNames.AddRange(new string[] { "CrashSight" });
- 执行初始化 在项目菜单中的“接入指南”中已经按项目具体的信息(平台,引擎,国内/海外,AppID)生成了针对此项目的初始化代码,可以直接复制使用。
选择第一个场景,或者主场景(scene),在尽可能较早加载的脚本中调用如下代码进行初始化:
#include "CrashSightAgent.h" //请包含该头文件
using namespace GCloud::CrashSight;
// Debug开关,Debug模式下会打印更多便于问题定位的Log.
// CrashSightAgent::ConfigDebugMode (true);
// 设置上报域名,请根据项目发行需求进行填写。(必填)
CrashSightAgent::ConfigCrashServerUrl("ps5.crashsight.qq.com");
// 设置上报所指向的APP ID, 并进行初始化。APP ID 可以在管理端更多->产品设置->产品信息中找到。(必填)
CrashSightAgent::InitWithAppId("AppID");
错误上报
CrashSight提供了可以主动上报错误信息的接口,具体接口如下:
static void ReportException(int type, const char* name, const char* reason, const char* stack_trace, const char* extras, bool quit, int dump_native_type = 0, bool is_async = true, const char *error_attach_path = nullptr);
说明:主动上报错误信息。可以在捕获到错误或者需要上报的时候手动调用,支持多线程调用。 name、reason和stack_trace不能为null。
参数 | 类型 | 说明 |
---|---|---|
type | int | 异常类型, 0~3为内部保留类型传入无效, C#: 4, js: 5, lua: 6 |
name | const char * | 异常名称 |
reason | const char * | 异常信息 |
stack_trace | const char * | 堆栈 |
extras | const char * | 其他信息 |
quit | bool | 是否退出(仅移动端有效) |
dump_native_type | int | 0:关闭,1:调用系统接口dump,3:minidump(仅移动端有效) |
is_async | bool | 是否异步(Win、Xbox有效) |
error_attach_path | const char * | 附件的绝对路径(不支持GBK字符)(Win、Xbox有效) |
更多高级接口的使用介绍请参 考Unreal SDK开发接入
Unity接入
该部分主要介绍使用CrashSight SDK进行错误上报的流程,关于Unity SDK的更多详细内容可以参考Unity SDK开发接入。
SDK接入
在平台成功创建项目后,在侧边栏的“接入指南”中,可以下载到与项目平台和引擎相匹配的SDK。同时指南中已经按项目具体的信息(平台,引擎,国内/海外,AppID)生成了针对此项目的初始化代码,可以直接复制使用。如下图所示:
选择第一个场景,或者主场景(scene),在尽可能较早加载的脚本中调用如下代码进行初始化CrashSight:
// Debug开关,Debug模式下会打印更多便于问题定位的Log.
// CrashSightAgent.ConfigDebugMode (true);
// 设置上报的目标域名,请根据项目发行需求进行填写。(必填)
CrashSightAgent.ConfigCrashServerUrl ("ps5.crashsight.qq.com");
// 设置上报所指向的APP ID, 并进行初始化。APP ID可以在管理端更多->产品设置->产品信息中找到。
CrashSightAgent.InitWithAppId("AppID");
错误上报
CrashSight提供了可以主动上报错误信息的接口,具体接口如下:
public static void ReportException(System.Exception e, string message);
说明:主动上报错误信息,用于上报捕获的c#异常。
参数 | 类型 | 说明 |
---|---|---|
e | System.Exception | 捕获到的异常 |
message | string | 异常信息 |
public static void ReportException(string name, string message, string stackTrace);
说明:主动上报错误信息。可以在捕获到错误或者需要上报的时候手动调用,支持多线程调用。 name、message和stackTrace不能为null。
参数 | 类型 | 说明 |
---|---|---|
name | string | 异常名称 |
message | string | 异常信息 |
stackTrace | string | 堆栈 |
public static void ReportException(int type, string exceptionName, string exceptionMsg, string exceptionStack, Dictionary<string, string> extInfo, int dumpNativeType = 0, string errorAttachmentPath = "");
说明:主动上报错误信息。可以在捕获到错误或者需要上报的时候手动调用,支持多线程调用。 exceptionName、exceptionMsg和exceptionStack不能为null。
参数 | 类型 | 说明 |
---|---|---|
type | int | 异常类型, 0~3为内部保留类型传入无效, C#: 4, js: 5, lua: 6 |
exceptionName | string | 异常名称 |
exceptionMsg | string | 异常信息 |
exceptionStack | string | 堆栈 |
extInfo | Dictionary\ | 其他信息 |
dump_native_type | int | 0:关闭,1:调用系统接口dump,3:minidump(仅移动端有效) |
errorAttachmentPath | string | 日志附件的绝对路径(仅Android有效) |
更多高级接口的使用介绍请参考Unity SDK开发接入。