3.14.0.1
DatadogNet 3.14.0.1
Moves to the 3.x line of both native SDKs — dd-sdk-ios 3.14.0 and dd-sdk-android 3.12.1.
Your code does not change. Datadog.Initialize, DatadogConfiguration and every options type,
IRumMonitor, IDatadogLogs, IDatadogLogger, IDatadogTracer, IDatadogSpan, ISessionReplay,
DatadogHttpMessageHandler and all of DatadogNet.Maui are unchanged. Upgrading from 2.30.2.1 is
a version bump.
That is the point of the façade, and this release is the first evidence of it: underneath, one SDK
replaced its entire tracing API and the other redistributed its whole Objective-C surface across ten
namespaces, and the same twenty device checks pass on both platforms without a line changing.
What moved underneath
Android — dd-sdk-android 3.0 removed OpenTracing and AndroidTracer. Tracing is now
DatadogTracing.NewTracerBuilder(core) and GlobalDatadogTracer, over DatadogSpan. The façade's
Android tracer was rewritten, and got better in the process:
DatadogSpanhas realSetError,SetErrorMessageandLogErrorMessage, where
io.opentracing.Spanhad none and the façade spelled out Datadog's four-log-field convention by
hand.- Trace and span ids are typed and readable — a 128-bit
DatadogTraceIdand along. SetTaghas typed overloads, so a numeric tag no longer needs aJava.Lang.Double.- Header injection still needs a shim, but for a new reason: the setter is a Kotlin
(C, String, String) -> Unit, which C# cannot express as a lambda. In 2.x the trap was a carrier
the marshaller copied. Both ended with a request going out untraced.
iOS — dd-sdk-ios 3.0 dissolved DatadogObjc. The DD* types moved into the module they belong
to, so the façade takes five package references and five using directives where it took one.
DDSite.Us1, DDTrackingConsent.Granted, DDRUMMonitor.Shared and OTSpan.SetActive became
methods; verbosity moved to DDDatadog.SetVerbosityLevel(DDCoreLoggerLevel). OpenTracing survives in
the Objective-C layer, so IDatadogSpan is still one interface over both platforms.
The crash engine is KSCrash rather than PLCrashReporter, and DatadogNet.CrashReporting no longer
carries a separate CrashReporter dependency.
Not exposed, and why
DatadogNet.Flags.iOSandDatadogNet.Profiling.iOSship the frameworks but expose no
callable API — upstream has not projected them into Objective-C. There is nothing to bind and
nothing for the façade to call.- Feature operations (
StartOperation,SucceedOperation,FailOperation) and
TrackMemoryWarningsare iOS-only so far. Reachable throughConfigureNative.
Notes
docs/upgrade-to-3x.md is the full analysis — what moved, what the façade
gained, what each 2.x convenience shim is still doing and which upstream member would replace it.
Target frameworks are unchanged: net8, net9 and net10, each with its -android and -ios head, and
DatadogNet.Maui the six platform ones. The net8 caveats are unchanged too — see the README.
Android's minimum is API 23, now declared honestly by the .aar itself rather than being forced
up from 21 by the AndroidX graph.
Full changelog: v2.30.2.1...v3.14.0.1
Packages
Built against DatadogNet.iOS 3.14.0.1 and DatadogNet.Android 3.12.1.1 — dd-sdk-ios 3.14.0 and dd-sdk-android 3.12.1.
The version names the iOS line, because the two native SDKs are released on
separate cadences and never share a version number. The fourth component is this
repository's own revision.
| Package | Target frameworks | NuGet |
|---|---|---|
DatadogNet |
net8.0, net8.0-android34.0, net8.0-ios18.0, net9.0, net9.0-android35.0, net9.0-ios18.0, net10.0, net10.0-android36.0, net10.0-ios26.0 |
3.14.0.1 |
DatadogNet.CrashReporting |
net8.0, net8.0-android34.0, net8.0-ios18.0, net9.0, net9.0-android35.0, net9.0-ios18.0, net10.0, net10.0-android36.0, net10.0-ios26.0 |
3.14.0.1 |
DatadogNet.WebView |
net8.0, net8.0-android34.0, net8.0-ios18.0, net9.0, net9.0-android35.0, net9.0-ios18.0, net10.0, net10.0-android36.0, net10.0-ios26.0 |
3.14.0.1 |
DatadogNet.Maui |
net8.0-android34.0, net8.0-ios18.0, net9.0-android35.0, net9.0-ios18.0, net10.0-android36.0, net10.0-ios26.0 |
3.14.0.1 |
dotnet add package DatadogNet.Maui --version 3.14.0.1
Licensing
The code in this repository is MIT. It depends on DatadogNet.iOS and
DatadogNet.Android, whose packages ship native binaries built and published by
Datadog under Apache-2.0. Each package declares MIT AND Apache-2.0 and ships
both texts under licenses/.