Development of Sentry SDK for Unity
InvalidOperationExceptions
on platforms that rely on the UnityWebRequestTransport
(i.e. Switch, Hololens) (#1587)This major release is based on the .NET 4.0 release and includes features like Metrics(preview) and Spotlight.
deadline_exceeded
by the transaction. This is now handled by the Relay.
User.IpAddress
is now set to {{auto}}
by default, even when sendDefaultPII is disabled (#2981)
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)If you have compilation errors you can find the affected types or overloads missing in the changelog entries below.
Sentry.Attachment
to Sentry.SentryAttachment
(#3116)Sentry.Constants
to Sentry.SentryConstants
(#3125)Sentry.Context
to Sentry.SentryContext
(#3121)Sentry.Hint
to Sentry.SentryHint
(#3116)Sentry.Package
to Sentry.SentryPackage
(#3121)Sentry.Request
to Sentry.SentryRequest
(#3121)Sentry.Runtime
to Sentry.SentryRuntime
(#3016)Sentry.Session
to Sentry.SentrySession
(#3110)Sentry.Span
to Sentry.SentrySpan
(#3021)Sentry.Transaction
to Sentry.SentryTransaction
(#3023)Sentry.User
to Sentry.SentryUser
(#3015)Sentry.IJsonSerializable
to Sentry.ISentryJsonSerializable
(#3116)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)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)IDictionary
rather than ConcurrentDictionary
. The specific dictionary being used is an implementation detail. (#2729)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");
});
EnableSpotlight
SpotlightUrl
. Defaults to http://localhost:8969/stream
.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)CaptureFailedRequests
and the statuscode ranges via the editor. These also apply to the native SDK on iOS
(#1514)NDK integration
and NDK Scope Sync
(#1452)mainTemplate.gradle
(#1446)