跳到主要内容

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::SetAppVersion("appVersion");
// 设置上报域名,请根据项目发行需求进行填写。(必填)
CrashSightAgent::ConfigCrashServerUrl("https://ps5.crashsight.qq.com/pb/async");
// 设置上报所指向的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 dumpNativeType = 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是否退出(仅移动端有效)
dumpNativeTypeint0:关闭,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.SetAppVersion("appVersion");
// 设置上报的目标域名,请根据项目发行需求进行填写。(必填)
CrashSightAgent.ConfigCrashServerUrl ("https://ps5.crashsight.qq.com/pb/async");
// 设置上报所指向的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<string, string>其他信息
dumpNativeTypeint0:关闭,1:调用系统接口dump,3:minidump(仅移动端有效)
errorAttachmentPathstring日志附件的绝对路径(仅Android有效)

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