Skip to main content

PS5 Platform Integration Guidelines


PS5 Crash Reporting

PS5 crash reporting relies on Sony's official reporting mechanism, and error reporting uses the SDK provided by CrashSight.This article first introduces the access process of crash reporting, then introduces the process of error reporting using the CrashSight SDK (you can refer to Unity SDK Integration or Unreal SDK Integration).

Preconditions

An DevNet Account of Sony with the privillege of creating products is required.

Steps for Retail Units

  1. Enter the DevNet of PlayStation Partners(https://p.siedev.net/). Select "Titles -> Titles and products"

Alt text

  1. Create a product, the "Product Type" of which must be "Back Office Server".
    ●Please make sure that the "Franchise Name" and "Title Name" is consistent with the ones in "Content PipeLine".

Alt text

●Fill out the "Product information". Switch the "Back Office Server" to "Product Type". Refer to the example and set the "Product Name".

Alt text

  1. After creating a "Back Office Server", Select "Base" -> "Client ID -> "+" and configure the "Client ID". Please contact the CrashSight Group for IP addresses. Add the IP Addresses of CrashSight Group to "Access source IP address" of development and production.

Alt text

If the configuration is successful, the "Base -> Client ID" will turn to "Production".

Alt text

  1. Please click the "Download Client Secret" link under "Credential files". A zip file containing the "Client Secret" will be downloaded upon clicking. Please send the zip file, "Title ID", and "Client ID" to the CrashSight Group.

Alt text

Alt text

Extra steps for DevKits

  1. Open up "Settings"-"Debug Settings" on PS5.

Alt text

  1. Choose "Core Dump"

Alt text

  1. Click "Uploader"

Alt text

  1. Make sure that both "Enable Uploader" and "Auto Upload" are set to "On". You can access the CrashSight team to get "Uploader URL"

PS5 Error Reporting

Reporting error for the PS5 requires using the functionality of the CrashSight SDK, which is divided into two engines: Unreal and Unity.

Unreal Integration

This section mainly introduces the process of reporting errors using the CrashSight SDK. For more detailed information about the Unreal SDK, you can refer to Unreal SDK Integration.

SDK Integration

  1. After creating a project on the platform, the SDK that matches the platform and engine of the project can be downloaded from the "Tutorial" in the sidebar, as shown in the figure below: Alt text
  2. Unpack Plugins files under the same directory. Copy the CrashSight directory in the Plugins folder to the Plugins directory under the UE project's root directory (if the folder doesn't exist, create it). Click [file] to refresh [Visual Studio project], then you will see CrashSight plugin code and directory structure in the Visual Studio project, as shown in the image.
  3. Compile CrashSight plugin source code and project source code together. When done, you can see the CrashSight plugin on the plugin editing page of UE editor, as shown in the image.

  1. Add CrashSight to the dependencies Add the following to Build.cs in the main project module:
PrivateDependencyModuleNames.AddRange(new string[] { "CrashSight" });
  1. Execute Initialization In the "Tutorial" under the project menu, initialization code has already been generated specifically for this project based on project details (platform, engine, domestic/offshore, AppID), which can be copied and used directly.

    Choose the first scene or the main scene, and call the following code in a script loaded as early as possible to initialize:

#include "CrashSightAgent.h" //Please include this header file
using namespace GCloud::CrashSight;
// Debug switch. In the debugging mode, more logs will be printed to locate issues.
// CrashSightAgent::ConfigDebugMode (true);

// Set the domain name for reporting. Please fill in according to project publishing requirements. (required)
CrashSightAgent::ConfigCrashServerUrl("ps5.crashsight.qq.com");
// Set the target APP ID for reporting and initialize. You can find the APP ID from More->Product Settings->Product Info of the management console. (required)
CrashSightAgent::InitWithAppId("AppID");

Error Reporting

CrashSight provides the interface for proactively reporting error messages. The interface is as follows:

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);

Note: Proactively report error messages. Can be called manually when an error is caught or needs to be reported, multi-threaded calls are supported. name, reason and stack_trace cannot be null.

ParameterTypeNote
typeintException Type, 0~3 are internal reserved types and are invalid if passed in, C#: 4, js: 5, lua: 6
nameconst char *Exception Name
reasonconst char *Exception Info
stack_traceconst char *Stack
extrasconst char *Other Info
quitboolWhether to quit
dump_native_typeint0: close, 1: call system interface dump, 3: minidump (valid for mobile only)
is_asyncboolasynchronous (valid for Win, Xbox)
error_attach_pathconst char *Absolute path of the attachment (GBK characters are not supported) (valid for Win, Xbox)

More information on advanced interfaces can be found in Unreal SDK Integration.

Unity Integration

This section mainly introduces the process of reporting errors using the CrashSight SDK. For more detailed information about the Unity SDK, you can refer to Unity SDK Integration.

SDK Integration

After creating a project on the platform, the SDK that matches the platform and engine of the project can be downloaded from the "Tutorial" in the sidebar. At the same time, in the "Tutorial" under the project menu, initialization code has already been generated specifically for this project based on project details (platform, engine, domestic/offshore, AppID), which can be copied and used directly. As shown in the figure below: Alt text

Choose the first scene or the main scene, and call the following code in a script loaded as early as possible to initialize:

// Debug switch. In the debugging mode, more logs will be printed to locate issues.
// CrashSightAgent.ConfigDebugMode (true);

// Set the domain name for reporting. Please fill in according to project publishing requirements. (required)
CrashSightAgent.ConfigCrashServerUrl ("ps5.crashsight.qq.com");
// Set the target APP ID for reporting and initialize. You can find the APP ID from More->Product Settings->Product Info of the management console. (required)
CrashSightAgent.InitWithAppId("AppID");

Error Reporting

CrashSight provides the interface for proactively reporting error messages. The interface is as follows:

public static void ReportException(System.Exception e, string message);

Note: Active C# exception reporting

ParameterTypeNote
eSystem.ExceptionCaught exception
messagestringException message
public static void ReportException(string name, string message, string stackTrace);

Note: Proactively report error messages. Can be called manually when an error is caught or needs to be reported, multi-threaded calls are supported. name, message and stackTrace cannot be null.

ParameterTypeNote
namestringException Name
messagestringException message
stackTracestringStack
public static void ReportException(int type, string exceptionName, string exceptionMsg, string exceptionStack, Dictionary<string, string> extInfo, int dumpNativeType = 0, string errorAttachmentPath = "");

Note: Proactively report error messages. Can be called manually when an error is caught or needs to be reported, multi-threaded calls are supported. exceptionName, exceptionMsg and exceptionStack cannot be null.

ParameterTypeNote
typeintException Type, 0~3 are internal reserved types and are invalid if passed in, C#: 4, js: 5, lua: 6
exceptionNamestringException Name
exceptionMsgstringException Info
exceptionStackstringStack
extInfoDictionary\Other Info
dump_native_typeint0: close, 1: call system interface dump, 3: minidump (valid for mobile only)
errorAttachmentPathstringasynchronous (valid for Win, Xbox)

More information on advanced interfaces can be found in Unity SDK Integration.