Sentry Unity Versions Save

Development of Sentry SDK for Unity

2.0.4

1 month ago

Fixes

  • Tweaked the SDK reinstalling the backend to capture native crashes on Windows. C++ exceptions are now getting properly captured again (#1622)

Dependencies

2.0.3

1 month ago

Fixes

  • The SDK no longer fails to capture native crashes on Windows. It now properly reinstalls the capturing backend during the initialization (#1603)
  • When building for iOS, the SDK no longer adds its dependencies multiple times (#1558) (#1595)

Dependencies

2.0.2

2 months ago

Fixes

  • The SDK no longer throws InvalidOperationExceptions on platforms that rely on the UnityWebRequestTransport (i.e. Switch, Hololens) (#1587)

Dependencies

2.0.1

2 months ago

Fixes

  • Fixed potential crashes on Android devices by removing the use of the persistent scope observer (#1555)

Dependencies

2.0.0

2 months ago

This major release is based on the .NET 4.0 release and includes features like Metrics(preview) and Spotlight.

Significant change in behavior

  • Transactions' spans are no longer automatically finished with the status deadline_exceeded by the transaction. This is now handled by the Relay.
    • Customers self hosting Sentry must use verion 22.12.0 or later (#3013)
  • The User.IpAddress is now set to {{auto}} by default, even when sendDefaultPII is disabled (#2981)
    • The "Prevent Storing of IP Addresses" option in the "Security & Privacy" project settings on sentry.io can be used to control this instead
  • The DiagnosticLogger signature for LogWarning changed to take the exception as the first parameter. That way it no longer gets mixed up with the TArgs. (#2987)

API breaking Changes

If you have compilation errors you can find the affected types or overloads missing in the changelog entries below.

Changed APIs

  • Class renamed from Sentry.Attachment to Sentry.SentryAttachment (#3116)
  • Class renamed from Sentry.Constants to Sentry.SentryConstants (#3125)
  • Class renamed from Sentry.Context to Sentry.SentryContext (#3121)
  • Class renamed from Sentry.Hint to Sentry.SentryHint (#3116)
  • Class renamed from Sentry.Package to Sentry.SentryPackage (#3121)
  • Class renamed from Sentry.Request to Sentry.SentryRequest (#3121)
  • Class renamed from Sentry.Runtime to Sentry.SentryRuntime (#3016)
  • Class renamed from Sentry.Session to Sentry.SentrySession (#3110)
  • Class renamed from Sentry.Span to Sentry.SentrySpan (#3021)
  • Class renamed from Sentry.Transaction to Sentry.SentryTransaction (#3023)
  • Class renamed from Sentry.User to Sentry.SentryUser (#3015)
  • Interface renamed from Sentry.IJsonSerializable to Sentry.ISentryJsonSerializable (#3116)
  • Interface renamed from Sentry.ISession to Sentry.ISentrySession (#3110)
  • SentryClient.Dispose is no longer obsolete (#2842)
  • ISentryClient.CaptureEvent overloads have been replaced by a single method accepting optional Hint and Scope parameters. You will need to pass hint as a named parameter from code that calls CaptureEvent without passing a scope argument. (#2749)
  • ITransaction has been renamed to ITransactionTracer. You will need to update any references to these interfaces in your code to use the new interface names (#2731, #2870)
  • TransactionContext and SpanContext constructors were updated. If you're constructing instances of these classes, you will need to adjust the order in which you pass parameters to these. (#2694, #2696)
  • The DiagnosticLogger signature for LogError and LogFatal changed to take the exception as the first parameter. That way it no longer gets mixed up with the TArgs. The DiagnosticLogger now also receives an overload for LogError and LogFatal that accepts a message only. (#2715)
  • Distribution added to IEventLike. (#2660)
  • StackFrame's ImageAddress, InstructionAddress, and FunctionId changed to long?. (#2691)
  • DebugImage and DebugMeta moved to Sentry.Protocol namespace. (#2815)
  • DebugImage.ImageAddress changed to long?. (#2725)
  • Contexts now inherit from IDictionary rather than ConcurrentDictionary. The specific dictionary being used is an implementation detail. (#2729)

Removed APIs

  • SentrySinkExtensions.ConfigureSentrySerilogOptions is now internal. If you were using this method, please use one of the SentrySinkExtensions.Sentry extension methods instead. (#2902)

  • A number of [Obsolete] options have been removed (#2841)

    • BeforeSend - use SetBeforeSend instead.
    • BeforeSendTransaction - use SetBeforeSendTransaction instead.
    • BeforeBreadcrumb - use SetBeforeBreadcrumb instead.
    • CreateHttpClientHandler - use CreateHttpMessageHandler instead.
    • DisableTaskUnobservedTaskExceptionCapture method has been renamed to DisableUnobservedTaskExceptionCapture.
    • DebugDiagnosticLogger - use TraceDiagnosticLogger instead.
    • KeepAggregateException - this property is no longer used and has no replacement.
    • ReportAssemblies - use ReportAssembliesMode instead.
  • Obsolete SystemClock constructor removed, use SystemClock.Clock instead. (#2856)

  • Obsolete Runtime.Clone() removed, this shouldn't have been public in the past and has no replacement. (#2856)

  • Obsolete SentryException.Data removed, use SentryException.Mechanism.Data instead. (#2856)

  • Obsolete AssemblyExtensions removed, this shouldn't have been public in the past and has no replacement. (#2856)

  • Obsolete SentryDatabaseLogging.UseBreadcrumbs() removed, it is called automatically and has no replacement. (#2856)

  • Obsolete Scope.GetSpan() removed, use Span property instead. (#2856)

  • Obsolete IUserFactory removed, use ISentryUserFactory instead. (#2856, #2840)

  • IHasMeasurements has been removed, use ISpanData instead. (#2659)

  • IHasBreadcrumbs has been removed, use IEventLike instead. (#2670)

  • ISpanContext has been removed, use ITraceContext instead. (#2668)

  • IHasTransactionNameSource has been removed, use ITransactionContext instead. (#2654)

  • (#2694)

  • The unused StackFrame.InstructionOffset has been removed. (#2691)

  • The unused Scope.Platform property has been removed. (#2695)

  • The obsolete setter Sentry.PlatformAbstractions.Runtime.Identifier has been removed (2764)

  • Sentry.Values<T> is now internal as it is never exposed in the public API (#2771)

  • The TracePropagationTarget class has been removed, use the SubstringOrRegexPattern class instead. (#2763)

  • The WithScope and WithScopeAsync methods have been removed. We have discovered that these methods didn't work correctly in certain desktop contexts, especially when using a global scope. (#2717) Replace your usage of WithScope with overloads of Capture* methods:

    • SentrySdk.CaptureEvent(SentryEvent @event, Action<Scope> scopeCallback)
    • SentrySdk.CaptureMessage(string message, Action<Scope> scopeCallback)
    • SentrySdk.CaptureException(Exception exception, Action<Scope> scopeCallback)
    // Before
    SentrySdk.WithScope(scope =>
    {
      scope.SetTag("key", "value");
      SentrySdk.CaptureEvent(new SentryEvent());
    });
    
    // After
    SentrySdk.CaptureEvent(new SentryEvent(), scope =>
    {
      // Configure your scope here
      scope.SetTag("key", "value");
    });
    

Features

  • Experimental pre-release availability of Metrics. We're exploring the use of Metrics in Sentry. The API will very likely change and we don't yet have any documentation. (#2949)
    • SentrySdk.Metrics.Set now additionally accepts string as value (#3092)
    • Timing metrics can now be captured with SentrySdk.Metrics.StartTimer (#3075)
  • Support for Spotlight, a debug tool for local development. (#2961)
    • Enable it with the option EnableSpotlight
    • Optionally configure the URL to connect via SpotlightUrl. Defaults to http://localhost:8969/stream.

Dependencies

1.8.0

4 months ago

Features

  • The static SentryMonoBehaviour now has it's UpdatePauseStatus public, allowing users to manually update the SDK's internal pause status. This helps work around false positive ANR events when using plugins that take away control from the game i.e. ad frameworks like AppLovin or Ironsource (#1529)
  • It's now possible enable to CaptureFailedRequests and the statuscode ranges via the editor. These also apply to the native SDK on iOS (#1514)

Fixes

  • The SDK no longer fails to resolve the debug symbol type on dedicated server builds (#1522)
  • Fixed screenshots not being attached to iOS native crashes (#1517)

Dependencies

1.7.1

5 months ago

Fixes

  • Fix SIGSEV, SIGABRT and SIGBUS crashes happening after/around the August Google Play System update, see #2955 for more details (fix provided by Native SDK bump) (#1491)
  • Fixed an issue with the SDK failing to properly detect application pause and focus lost events and creating false positive ANR events (specifically on Android) (#1484)

Dependencies

1.7.1-beta.1

6 months ago

Fixes

  • Fix SIGSEV, SIGABRT and SIGBUS crashes happening after/around the August Google Play System update, see #2955 for more details (fix provided by Native SDK bump) (#1491)

Dependencies

1.7.0

6 months ago

Feature

  • Added the dedicated server platforms to the known platforms to prevent the SDK from interpreting them as restricted platforms (i.e. disabling offline caching, session tracking) (#1468)

Dependencies

1.6.0

7 months ago

Feature

  • The SDK now surfaces options to opt out of the Android NDK integration and NDK Scope Sync(#1452)

Fixes

  • Fixed IL2CPP line number processor to no longer crash in Unity 2023 builds (#1450)
  • Fixed an issue with the Android dependency setup when using a custom mainTemplate.gradle (#1446)

Dependencies