From eab7187826d072deaa9b3391e99bac4acf0d07b4 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 1 Apr 2026 12:38:39 +0200 Subject: [PATCH 1/7] Add Xbox native support with dedicated Sentry.Unity.Native.Xbox assembly Introduce a separate Sentry.Unity.Native.Xbox assembly compiled with SENTRY_NATIVE_XBOX to handle Xbox-specific native SDK integration: - SentryNativeXbox: resolves the Xbox Persistent Local Storage path via sentry_xbox_utils_get_pls_path (from sentry-xbox) since Application.persistentDataPath returns empty on packaged Xbox builds - SentryNativeBridge: treat Xbox GameCore platforms as Windows for path handling - SentryUnityOptions: skip persistentDataPath assignment for Xbox platforms - Build system: add BuildXboxAssembly MSBuild target - Plugin meta: dedicated Xbox assembly enabled only for GameCore targets Depends on sentry-xbox feat/unity-pls branch. --- .../Runtime/Sentry.Unity.Native.Xbox.dll.meta | 84 +++++++++++++++++++ .../Runtime/Sentry.Unity.Native.dll.meta | 8 +- .../Sentry.Unity.Native.csproj | 19 +++++ src/Sentry.Unity.Native/SentryNative.cs | 6 ++ src/Sentry.Unity.Native/SentryNativeBridge.cs | 4 +- src/Sentry.Unity.Native/SentryNativeXbox.cs | 58 +++++++++++++ src/Sentry.Unity/Properties/AssemblyInfo.cs | 1 + src/Sentry.Unity/SentryUnityOptions.cs | 7 +- .../package-release.zip.snapshot | 4 + 9 files changed, 185 insertions(+), 6 deletions(-) create mode 100644 package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta create mode 100644 src/Sentry.Unity.Native/SentryNativeXbox.cs diff --git a/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta b/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta new file mode 100644 index 000000000..d0f219798 --- /dev/null +++ b/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 +PluginImporter: + externalObjects: {} + serializedVersion: 3 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + Android: + enabled: 0 + settings: + AndroidLibraryDependee: UnityLibrary + AndroidSharedLibraryType: Executable + CPU: ARMv7 + Any: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 1 + Exclude GameCoreScarlett: 0 + Exclude GameCoreXboxOne: 0 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude PS5: 1 + Exclude Switch: 1 + Exclude WebGL: 1 + Exclude Win: 1 + Exclude Win64: 1 + Exclude iOS: 1 + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + GameCoreScarlett: + enabled: 1 + settings: + CPU: AnyCPU + GameCoreXboxOne: + enabled: 1 + settings: + CPU: AnyCPU + Linux64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + PS5: + enabled: 0 + settings: {} + Switch: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + AddToEmbeddedBinaries: false + CPU: AnyCPU + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/package-dev/Runtime/Sentry.Unity.Native.dll.meta b/package-dev/Runtime/Sentry.Unity.Native.dll.meta index dc4b000cf..3c76509d5 100644 --- a/package-dev/Runtime/Sentry.Unity.Native.dll.meta +++ b/package-dev/Runtime/Sentry.Unity.Native.dll.meta @@ -18,8 +18,8 @@ PluginImporter: settings: Exclude Android: 0 Exclude Editor: 1 - Exclude GameCoreScarlett: 0 - Exclude GameCoreXboxOne: 0 + Exclude GameCoreScarlett: 1 + Exclude GameCoreXboxOne: 1 Exclude Linux64: 0 Exclude OSXUniversal: 1 Exclude WebGL: 1 @@ -52,13 +52,13 @@ PluginImporter: - first: GameCoreScarlett: GameCoreScarlett second: - enabled: 1 + enabled: 0 settings: CPU: AnyCPU - first: GameCoreXboxOne: GameCoreXboxOne second: - enabled: 1 + enabled: 0 settings: CPU: AnyCPU - first: diff --git a/src/Sentry.Unity.Native/Sentry.Unity.Native.csproj b/src/Sentry.Unity.Native/Sentry.Unity.Native.csproj index f6c13a6ef..ca7e5386e 100644 --- a/src/Sentry.Unity.Native/Sentry.Unity.Native.csproj +++ b/src/Sentry.Unity.Native/Sentry.Unity.Native.csproj @@ -46,4 +46,23 @@ /> + + + + + + + diff --git a/src/Sentry.Unity.Native/SentryNative.cs b/src/Sentry.Unity.Native/SentryNative.cs index 1ecf08c23..18cae1147 100644 --- a/src/Sentry.Unity.Native/SentryNative.cs +++ b/src/Sentry.Unity.Native/SentryNative.cs @@ -43,6 +43,12 @@ internal static void Configure(SentryUnityOptions options, RuntimePlatform platf return; } +#if SENTRY_NATIVE_XBOX + // Xbox's Application.persistentDataPath returns an empty string for packaged builds. + // Resolve the writable Persistent Local Storage path before native initialization. + SentryNativeXbox.ResolveStoragePath(options, Logger); +#endif + try { if (!SentryNativeBridge.Init(options)) diff --git a/src/Sentry.Unity.Native/SentryNativeBridge.cs b/src/Sentry.Unity.Native/SentryNativeBridge.cs index 81ac5c721..687d94635 100644 --- a/src/Sentry.Unity.Native/SentryNativeBridge.cs +++ b/src/Sentry.Unity.Native/SentryNativeBridge.cs @@ -31,7 +31,9 @@ public static bool Init(SentryUnityOptions options) UseLibC = Application.platform is RuntimePlatform.LinuxPlayer or RuntimePlatform.LinuxServer or RuntimePlatform.PS5 or RuntimePlatform.Switch; - IsWindows = Application.platform is RuntimePlatform.WindowsPlayer or RuntimePlatform.WindowsServer; + IsWindows = Application.platform + is RuntimePlatform.WindowsPlayer or RuntimePlatform.WindowsServer + or RuntimePlatform.GameCoreXboxSeries or RuntimePlatform.GameCoreXboxOne; var cOptions = sentry_options_new(); diff --git a/src/Sentry.Unity.Native/SentryNativeXbox.cs b/src/Sentry.Unity.Native/SentryNativeXbox.cs new file mode 100644 index 000000000..e87595009 --- /dev/null +++ b/src/Sentry.Unity.Native/SentryNativeXbox.cs @@ -0,0 +1,58 @@ +#if SENTRY_NATIVE_XBOX +using System; +using System.Runtime.InteropServices; +using Sentry.Extensibility; + +namespace Sentry.Unity.Native; + +/// +/// Xbox-specific helpers for Sentry native support. +/// +/// +/// On Xbox, Application.persistentDataPath returns an empty string for packaged (installed) builds. +/// The writable storage must be resolved via the Xbox Persistent Local Storage (PLS) API, which requires +/// PersistentLocalStorage to be configured in the game's MicrosoftGame.config. +/// +internal static class SentryNativeXbox +{ + [DllImport("sentry")] + private static extern IntPtr sentry_xbox_utils_get_pls_path(); + + /// + /// Resolves the Xbox Persistent Local Storage path and sets . + /// + /// + /// Called from before native SDK initialization. + /// If PLS is not available (e.g. not configured in MicrosoftGame.config), the cache directory + /// is left unset and the SDK will operate without offline caching or session persistence. + /// + internal static void ResolveStoragePath(SentryUnityOptions options, IDiagnosticLogger? logger) + { + string? plsPath = null; + try + { + var plsPathPtr = sentry_xbox_utils_get_pls_path(); + plsPath = Marshal.PtrToStringAnsi(plsPathPtr); + } + catch (EntryPointNotFoundException) + { + logger?.LogWarning( + "sentry_xbox_utils_get_pls_path not found in sentry.dll. " + + "Update the sentry-xbox native library to enable Persistent Local Storage support."); + } + + if (!string.IsNullOrEmpty(plsPath)) + { + logger?.LogDebug("Using Xbox Persistent Local Storage path: {0}", plsPath); + options.CacheDirectoryPath = plsPath; + } + else + { + logger?.LogWarning( + "Failed to retrieve Xbox Persistent Local Storage path. " + + "Ensure 'PersistentLocalStorage' is configured in MicrosoftGame.config. " + + "Offline caching and session persistence will be disabled."); + } + } +} +#endif diff --git a/src/Sentry.Unity/Properties/AssemblyInfo.cs b/src/Sentry.Unity/Properties/AssemblyInfo.cs index 160616284..9e8226ca7 100644 --- a/src/Sentry.Unity/Properties/AssemblyInfo.cs +++ b/src/Sentry.Unity/Properties/AssemblyInfo.cs @@ -3,6 +3,7 @@ [assembly: InternalsVisibleTo("Sentry.Unity.Native")] [assembly: InternalsVisibleTo("Sentry.Unity.Native.PlayStation")] [assembly: InternalsVisibleTo("Sentry.Unity.Native.Switch")] +[assembly: InternalsVisibleTo("Sentry.Unity.Native.Xbox")] [assembly: InternalsVisibleTo("Sentry.Unity.Tests")] [assembly: InternalsVisibleTo("Sentry.Unity.Editor")] [assembly: InternalsVisibleTo("Sentry.Unity.Editor.Tests")] diff --git a/src/Sentry.Unity/SentryUnityOptions.cs b/src/Sentry.Unity/SentryUnityOptions.cs index 7690ce845..98bb1b711 100644 --- a/src/Sentry.Unity/SentryUnityOptions.cs +++ b/src/Sentry.Unity/SentryUnityOptions.cs @@ -503,7 +503,12 @@ or RuntimePlatform.PS5 // Only assign the cache directory path if we're on a "known" platform. // Special casing Switch here: Accessing `Application.persistentDataPath` implicitly creates a directory // and leads to a crash. - if (IsKnownPlatform(application.Platform) && application.Platform is not RuntimePlatform.Switch) + // Special casing Xbox here: `Application.persistentDataPath` returns an empty string on packaged builds. + // The writable path is resolved via Xbox Persistent Local Storage in SentryNativeXbox.ResolveStoragePath. + if (IsKnownPlatform(application.Platform) + && application.Platform is not RuntimePlatform.Switch + && application.Platform is not RuntimePlatform.GameCoreXboxSeries + && application.Platform is not RuntimePlatform.GameCoreXboxOne) { CacheDirectoryPath = application.PersistentDataPath; } diff --git a/test/Scripts.Tests/package-release.zip.snapshot b/test/Scripts.Tests/package-release.zip.snapshot index 0fc135018..b989804c8 100644 --- a/test/Scripts.Tests/package-release.zip.snapshot +++ b/test/Scripts.Tests/package-release.zip.snapshot @@ -267,6 +267,10 @@ Runtime/Sentry.Unity.Native.Switch.dll Runtime/Sentry.Unity.Native.Switch.dll.meta Runtime/Sentry.Unity.Native.Switch.pdb Runtime/Sentry.Unity.Native.Switch.pdb.meta +Runtime/Sentry.Unity.Native.Xbox.dll +Runtime/Sentry.Unity.Native.Xbox.dll.meta +Runtime/Sentry.Unity.Native.Xbox.pdb +Runtime/Sentry.Unity.Native.Xbox.pdb.meta Runtime/Sentry.Unity.pdb Runtime/Sentry.Unity.pdb.meta Runtime/Sentry.xml From 6fc7e0e6f9d0f4810d2034f5017acc934f86056e Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 1 Apr 2026 13:43:43 +0200 Subject: [PATCH 2/7] guid --- package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta b/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta index d0f219798..c451edff5 100644 --- a/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta +++ b/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 +guid: ec5bcb9372bd4188912bb7124e548296 PluginImporter: externalObjects: {} serializedVersion: 3 From 9beb98bbb43aa7d6663607e89f04f1687fb5adbc Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 1 Apr 2026 14:36:32 +0200 Subject: [PATCH 3/7] tidying things up --- src/Sentry.Unity.Native/SentryNative.cs | 6 ------ src/Sentry.Unity.Native/SentryNativeBridge.cs | 6 ++++++ src/Sentry.Unity.Native/SentryNativeXbox.cs | 19 +++++++++++-------- src/Sentry.Unity/SentryUnityOptions.cs | 6 ++---- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/Sentry.Unity.Native/SentryNative.cs b/src/Sentry.Unity.Native/SentryNative.cs index 18cae1147..1ecf08c23 100644 --- a/src/Sentry.Unity.Native/SentryNative.cs +++ b/src/Sentry.Unity.Native/SentryNative.cs @@ -43,12 +43,6 @@ internal static void Configure(SentryUnityOptions options, RuntimePlatform platf return; } -#if SENTRY_NATIVE_XBOX - // Xbox's Application.persistentDataPath returns an empty string for packaged builds. - // Resolve the writable Persistent Local Storage path before native initialization. - SentryNativeXbox.ResolveStoragePath(options, Logger); -#endif - try { if (!SentryNativeBridge.Init(options)) diff --git a/src/Sentry.Unity.Native/SentryNativeBridge.cs b/src/Sentry.Unity.Native/SentryNativeBridge.cs index 687d94635..66dc18fcd 100644 --- a/src/Sentry.Unity.Native/SentryNativeBridge.cs +++ b/src/Sentry.Unity.Native/SentryNativeBridge.cs @@ -71,6 +71,10 @@ is RuntimePlatform.WindowsPlayer or RuntimePlatform.WindowsServer sentry_options_set_attach_screenshot(cOptions, options.AttachScreenshot ? 1 : 0); } +#if SENTRY_NATIVE_XBOX + SentryNativeXbox.ResolveStoragePath(options, Logger); +#endif + var databasePath = GetDatabasePath(options); #if SENTRY_NATIVE_SWITCH Logger?.LogDebug("Setting DatabasePath: {0}", databasePath); @@ -121,6 +125,8 @@ internal static string GetDatabasePath(SentryUnityOptions options, IApplication? return Path.Combine(options.CacheDirectoryPath, ".sentry-native"); } + // This is a fallback attempting to provide native crash support in case of CacheDirectoryPath not being set. + // Xbox and Switch rely on their own mechanisms to resolve storage, see SentryNativeXbox and SentryNativeSwitch. application ??= ApplicationAdapter.Instance; return Path.Combine(application.PersistentDataPath, ".sentry-native"); } diff --git a/src/Sentry.Unity.Native/SentryNativeXbox.cs b/src/Sentry.Unity.Native/SentryNativeXbox.cs index e87595009..0e16c2007 100644 --- a/src/Sentry.Unity.Native/SentryNativeXbox.cs +++ b/src/Sentry.Unity.Native/SentryNativeXbox.cs @@ -24,10 +24,16 @@ internal static class SentryNativeXbox /// /// Called from before native SDK initialization. /// If PLS is not available (e.g. not configured in MicrosoftGame.config), the cache directory - /// is left unset and the SDK will operate without offline caching or session persistence. + /// is left unset. The SDK will operate without offline caching, session persistence, or native crash reporting. /// internal static void ResolveStoragePath(SentryUnityOptions options, IDiagnosticLogger? logger) { + if (!string.IsNullOrEmpty(options.CacheDirectoryPath)) + { + logger?.LogWarning("The 'CacheDirectoryPath' has already been set by the user. " + + "Storgage path resolution will be skipped.";) + } + string? plsPath = null; try { @@ -36,22 +42,19 @@ internal static void ResolveStoragePath(SentryUnityOptions options, IDiagnosticL } catch (EntryPointNotFoundException) { - logger?.LogWarning( - "sentry_xbox_utils_get_pls_path not found in sentry.dll. " + - "Update the sentry-xbox native library to enable Persistent Local Storage support."); + logger?.LogWarning("Failed to find 'sentry_xbox_utils_get_pls_path' in sentry.dll."); } if (!string.IsNullOrEmpty(plsPath)) { - logger?.LogDebug("Using Xbox Persistent Local Storage path: {0}", plsPath); + logger?.LogDebug("Setting Persistent Local Storage as cache directory path: '{0}'"., plsPath); options.CacheDirectoryPath = plsPath; } else { - logger?.LogWarning( - "Failed to retrieve Xbox Persistent Local Storage path. " + + logger?.LogWarning("Failed to retrieve Xbox Persistent Local Storage path. " + "Ensure 'PersistentLocalStorage' is configured in MicrosoftGame.config. " + - "Offline caching and session persistence will be disabled."); + "Offline caching, session persistence, and native crash support will be disabled."); } } } diff --git a/src/Sentry.Unity/SentryUnityOptions.cs b/src/Sentry.Unity/SentryUnityOptions.cs index 98bb1b711..76235352a 100644 --- a/src/Sentry.Unity/SentryUnityOptions.cs +++ b/src/Sentry.Unity/SentryUnityOptions.cs @@ -501,10 +501,8 @@ or RuntimePlatform.PS5 }; // Only assign the cache directory path if we're on a "known" platform. - // Special casing Switch here: Accessing `Application.persistentDataPath` implicitly creates a directory - // and leads to a crash. - // Special casing Xbox here: `Application.persistentDataPath` returns an empty string on packaged builds. - // The writable path is resolved via Xbox Persistent Local Storage in SentryNativeXbox.ResolveStoragePath. + // Special casing Switch: `Application.persistentDataPath` implicitly creates a directory and crashes. + // Special casing Xbox: `Application.persistentDataPath` returns an empty string on packaged builds. if (IsKnownPlatform(application.Platform) && application.Platform is not RuntimePlatform.Switch && application.Platform is not RuntimePlatform.GameCoreXboxSeries From 3acc2d9a7159de4ef2f89b1809e1bf9eab46fc2d Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 1 Apr 2026 14:39:33 +0200 Subject: [PATCH 4/7] updated changelog.md --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ac85dcaf..8d569dd18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,13 @@ ## Unreleased -## Features +### Fixes + +- The SDK now correctly resolves the storage path on Xbox during initialization, enabling offline caching and native crash capturing without user setup out of the box. ([#2617](https://github.com/getsentry/sentry-unity/pull/2617)) + +### Features -- The _Metrics_ APIs are now stable: removed `Experimental` from `SentrySdk` and `SentryOptions` ([#2615](https://github.com/getsentry/sentry-unity/pull/2615)) +- The _Metrics_ APIs are now stable: removed `Experimental` from `SentrySdk` and `SentryOptions`. ([#2615](https://github.com/getsentry/sentry-unity/pull/2615)) ### Dependencies From ff07320be8155c80dc3a2315865dffd3a14ff01c Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 1 Apr 2026 15:07:49 +0200 Subject: [PATCH 5/7] . --- src/Sentry.Unity.Native/SentryNativeXbox.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sentry.Unity.Native/SentryNativeXbox.cs b/src/Sentry.Unity.Native/SentryNativeXbox.cs index 0e16c2007..1de1bed6f 100644 --- a/src/Sentry.Unity.Native/SentryNativeXbox.cs +++ b/src/Sentry.Unity.Native/SentryNativeXbox.cs @@ -31,7 +31,7 @@ internal static void ResolveStoragePath(SentryUnityOptions options, IDiagnosticL if (!string.IsNullOrEmpty(options.CacheDirectoryPath)) { logger?.LogWarning("The 'CacheDirectoryPath' has already been set by the user. " + - "Storgage path resolution will be skipped.";) + "Storage path resolution will be skipped."); } string? plsPath = null; @@ -47,7 +47,7 @@ internal static void ResolveStoragePath(SentryUnityOptions options, IDiagnosticL if (!string.IsNullOrEmpty(plsPath)) { - logger?.LogDebug("Setting Persistent Local Storage as cache directory path: '{0}'"., plsPath); + logger?.LogDebug("Setting Persistent Local Storage as cache directory path: '{0}'", plsPath); options.CacheDirectoryPath = plsPath; } else From f3c37dd9f64d56cd515868e902e5e92faace5d6e Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 1 Apr 2026 17:00:01 +0200 Subject: [PATCH 6/7] Fix Xbox meta: serializedVersion 2 format, add missing platform exclusions --- .../Runtime/Sentry.Unity.Native.Xbox.dll.meta | 95 +++++++++++++------ 1 file changed, 67 insertions(+), 28 deletions(-) diff --git a/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta b/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta index c451edff5..a74c98e4e 100644 --- a/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta +++ b/package-dev/Runtime/Sentry.Unity.Native.Xbox.dll.meta @@ -2,7 +2,7 @@ fileFormatVersion: 2 guid: ec5bcb9372bd4188912bb7124e548296 PluginImporter: externalObjects: {} - serializedVersion: 3 + serializedVersion: 2 iconMap: {} executionOrder: {} defineConstraints: [] @@ -11,13 +11,9 @@ PluginImporter: isExplicitlyReferenced: 0 validateReferences: 1 platformData: - Android: - enabled: 0 - settings: - AndroidLibraryDependee: UnityLibrary - AndroidSharedLibraryType: Executable - CPU: ARMv7 - Any: + - first: + : Any + second: enabled: 0 settings: Exclude Android: 1 @@ -26,59 +22,102 @@ PluginImporter: Exclude GameCoreXboxOne: 0 Exclude Linux64: 1 Exclude OSXUniversal: 1 + Exclude PS4: 1 Exclude PS5: 1 Exclude Switch: 1 Exclude WebGL: 1 Exclude Win: 1 Exclude Win64: 1 Exclude iOS: 1 - Editor: + Exclude tvOS: 1 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: enabled: 0 settings: CPU: AnyCPU DefaultValueInitialized: true OS: AnyOS - GameCoreScarlett: + - first: + GameCoreScarlett: GameCoreScarlett + second: enabled: 1 settings: CPU: AnyCPU - GameCoreXboxOne: + - first: + GameCoreXboxOne: GameCoreXboxOne + second: enabled: 1 settings: CPU: AnyCPU - Linux64: + - first: + PS5: PS5 + second: + enabled: 0 + settings: {} + - first: + Standalone: Linux64 + second: enabled: 0 settings: CPU: None - OSXUniversal: + - first: + Standalone: OSXUniversal + second: enabled: 0 settings: CPU: None - PS5: - enabled: 0 - settings: {} - Switch: - enabled: 0 - settings: {} - Win: + - first: + Standalone: Win + second: enabled: 0 settings: CPU: None - Win64: + - first: + Standalone: Win64 + second: enabled: 0 settings: CPU: None - WindowsStoreApps: + - first: + Switch: Switch + second: + enabled: 0 + settings: {} + - first: + Windows Store Apps: WindowsStoreApps + second: enabled: 0 settings: CPU: AnyCPU - iOS: + - first: + iPhone: iOS + second: enabled: 0 settings: AddToEmbeddedBinaries: false CPU: AnyCPU - CompileFlags: - FrameworkDependencies: - userData: - assetBundleName: - assetBundleVariant: + CompileFlags: + FrameworkDependencies: + - first: + tvOS: tvOS + second: + enabled: 0 + settings: + CPU: AnyCPU + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: From c2940713bcad87716fdb7f52cee3ff8f807e3f8f Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Thu, 2 Apr 2026 13:21:21 +0200 Subject: [PATCH 7/7] bail --- src/Sentry.Unity.Native/SentryNativeXbox.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Sentry.Unity.Native/SentryNativeXbox.cs b/src/Sentry.Unity.Native/SentryNativeXbox.cs index 1de1bed6f..fb67c850f 100644 --- a/src/Sentry.Unity.Native/SentryNativeXbox.cs +++ b/src/Sentry.Unity.Native/SentryNativeXbox.cs @@ -32,6 +32,7 @@ internal static void ResolveStoragePath(SentryUnityOptions options, IDiagnosticL { logger?.LogWarning("The 'CacheDirectoryPath' has already been set by the user. " + "Storage path resolution will be skipped."); + return; } string? plsPath = null;