跳到主要内容

PS5接入指引


PS5的崩溃上报依赖索尼官方的上报机制,错误上报使用CrashSight提供的SDK。本文先介绍崩溃上报的接入流程,再介绍使用CrashSight SDK进行错误上报的流程(可以参考Unity SDK开发接入Unreal SDK开发接入)。

PS5崩溃上报

前置条件

操作者需要拥有索尼的DevNet开发者账号,并且拥有创建相关Product的权限。

接入步骤

1.进入索尼PS5的开发者网站。选择"Titles -> Titles and products"

Alt text

2.创建"Product Type"是"Back Office Server"的产品。 ●在"Franchis Name"和"Title Name"这一栏请务必保证和Content PipeLine中的相关信息保持一致。

Alt text

● 填写相应的"Product information",选择"Product Type"为"Back Office Server"。"Product Name"按照示例要求进行填写。

Alt text

3.创建Back Office Server成功后。选择"Base -> Client ID -> +",配置Client ID。联系CrashSight团队开发提供IP地址。添加到development环境和production环境的Access source IP address当中。

Alt text

在申请成功之后,"Base -> Client ID"一栏转变为"Production"。

Alt text

4.将Credential files栏中的信息提供给Crashsight团队。点击"Download Client Secret",需要提供"Client ID"和"Client Scret"。同时提供title Id。

Alt text

开发版主机额外步骤

  1. 在PS5主机上,进入"设定"-"Debug Settings"

Alt text

  1. 选择"Core Dump"按钮

Alt text

  1. 选择"Uploader"按钮

Alt text

  1. 将"Enable Uploader"设置为"On", 设置"Uploader URL"(URL请联系CrashSight项目组获取) ,设置"Auto Upload"为"On"。

PS5错误上报

PS5的错误上报需要使用CrashSight SDK的功能,下面分成Unreal与Unity两种引擎的接入进行介绍。

Unreal接入

该部分主要介绍使用CrashSight SDK进行错误上报的流程,关于Unreal SDK的更多详细内容可以参考Unreal SDK开发接入

SDK接入

  1. 在平台成功创建项目后,在侧边栏的“接入指南”中,可以下载到与项目平台和引擎相匹配的SDK。如下图所示 Alt text
  2. 将位于同一目录中的 Plugins 文件解压,将 Plugins 文件夹中的CrashSight目录拷贝到UE项目根目录下的Plugins目录(如果没有则创建该文件夹)。点击[文件]刷新 [Visual Studio 项目],然后在 Visual Studio 项目中则可以看到CrashSight plugin 代码以及目录结构,如图所示。
  3. 将CrashSight插件源码和项目源码一起编译,编译完成后则可以在UE编辑器中的编辑插件中看到CrashSight插件,如图所示。
  4. CrashSight加入依赖项 在项目主模块的Build.cs中添加:
PrivateDependencyModuleNames.AddRange(new string[] { "CrashSight" });
  1. 执行初始化 在项目菜单中的“接入指南”中已经按项目具体的信息(平台,引擎,国内/海外,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。

参数类型说明
typeint异常类型, 0~3为内部保留类型传入无效, C#: 4, js: 5, lua: 6
nameconst char *异常名称
reasonconst char *异常信息
stack_traceconst char *堆栈
extrasconst char *其他信息
quitbool是否退出(仅移动端有效)
dump_native_typeint0:关闭,1:调用系统接口dump,3:minidump(仅移动端有效)
is_asyncbool是否异步(Win、Xbox有效)
error_attach_pathconst char *附件的绝对路径(不支持GBK字符)(Win、Xbox有效)

更多高级接口的使用介绍请参考Unreal SDK开发接入

Unity接入

该部分主要介绍使用CrashSight SDK进行错误上报的流程,关于Unity SDK的更多详细内容可以参考Unity SDK开发接入

SDK接入

在平台成功创建项目后,在侧边栏的“接入指南”中,可以下载到与项目平台和引擎相匹配的SDK。同时指南中已经按项目具体的信息(平台,引擎,国内/海外,AppID)生成了针对此项目的初始化代码,可以直接复制使用。如下图所示: Alt text 选择第一个场景,或者主场景(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#异常。

参数类型说明
eSystem.Exception捕获到的异常
messagestring异常信息
public static void ReportException(string name, string message, string stackTrace);

说明:主动上报错误信息。可以在捕获到错误或者需要上报的时候手动调用,支持多线程调用。 name、message和stackTrace不能为null。

参数类型说明
namestring异常名称
messagestring异常信息
stackTracestring堆栈
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。

参数类型说明
typeint异常类型, 0~3为内部保留类型传入无效, C#: 4, js: 5, lua: 6
exceptionNamestring异常名称
exceptionMsgstring异常信息
exceptionStackstring堆栈
extInfoDictionary\其他信息
dump_native_typeint0:关闭,1:调用系统接口dump,3:minidump(仅移动端有效)
errorAttachmentPathstring日志附件的绝对路径(仅Android有效)

更多高级接口的使用介绍请参考Unity SDK开发接入