3.14.0.4
Binding-only release. The native SDK is unchanged — still
dd-sdk-ios 3.14.0, built from source
for Mac Catalyst — and so are the package ids, namespaces and API. The fourth component advances
for one behaviour fix every consumer gets, plus the same release-machinery round the sibling
repositories took.
Apps no longer crash on first use under the default trim mode
DatadogNet.Mac.Example built and linked cleanly and then died on its first touch of logging:
ObjCRuntime.RuntimeException: Could not find the type 'ObjCRuntime.__Registrar__'
in the assembly 'DatadogNet.Logs.Mac'.
The cause is not in these bindings: the managed-static registrar — .NET 9+'s default for Mac
Catalyst — weaves its __Registrar__ lookup type into binding assemblies reliably only under
TrimMode=full, and MAUI apps default to TrimMode=partial, where the weaving silently skips
some assemblies (dotnet/macios#21636). Which
assemblies get skipped is luck: on a real Mac, DatadogNet.Core.Mac got its type,
DatadogNet.Logs.Mac did not.
The packages now defend themselves: a buildTransitive props file on DatadogNet.Core.Mac —
the one dependency every package here shares — defaults consuming apps to the classic static
registrar, which needs no weaving. It applies only when the app has not already chosen a
Registrar, so opting back into managed-static (with TrimMode=full, where the bug does not
reproduce) keeps working. Verified by repacking and rebuilding the example on the same Mac:
first log line delivered, no crash. The full write-up is
docs/known-issue-managed-static-registrar-trimmode-partial.md.
This came out of the same round of real-hardware checks that caught the iOS packages' missing
device symbols (fixed separately in DatadogNet.iOS 3.14.0.5) — Catalyst has no simulator, so
running the example here at all was the novelty.
Release machinery
The same round the sibling repositories took, so releases behave identically across them:
- Verification is gated on
verify: a release run only packs and publishes; the sample,
package validation and smoke tests run on PRs, where their failures are actionable. - A release starts when its release note merges: tagging follows from
docs/release-notes/<version>.mdlanding on the default branch, and a tag whose commit is not
an ancestor of the default branch is refused. - Upstream is watched: a scheduled workflow compares
DatadogNativeVersionagainst the
latest dd-sdk-ios release and opens one issue, idempotently, when upstream is ahead.
Upgrading from 3.14.0.3
-<PackageReference Include="DatadogNet.Logs.Mac" Version="3.14.0.3" />
+<PackageReference Include="DatadogNet.Logs.Mac" Version="3.14.0.4" />Nothing to change beyond the version: same native build, same API, same package set, and all
packages move together as they depend on each other at an exact version. If your app sets
Registrar explicitly, your choice is respected; everyone else silently stops being exposed to
the weaving bug.
Full changelog: v3.14.0.3...v3.14.0.4
Packages
Bound against dd-sdk-ios 3.14.0, built from source for Mac Catalyst, targeting net8.0-maccatalyst18.0, net9.0-maccatalyst18.0 and net10.0-maccatalyst26.0.
dsyms-3.14.0.4.zip below carries the dSYMs for these exact binaries - Datadog publishes
no Catalyst builds, so this release is the only place they exist. Upload them to Datadog for
crash symbolication. The zip also carries BUILD-INFO.txt: the Xcode, SDK and timestamp the
binaries were built with, for anyone rebuilding at this tag to compare.
The first three components of
3.14.0.4are the dd-sdk-ios version; the fourth is this
repository's binding revision, which advances when the bindings or packaging change while
the native binaries stay put.
| Package | Wraps | NuGet |
|---|---|---|
DatadogNet.Core.Mac |
DatadogCore |
3.14.0.4 |
DatadogNet.RUM.Mac |
DatadogRUM |
3.14.0.4 |
DatadogNet.Logs.Mac |
DatadogLogs |
3.14.0.4 |
DatadogNet.Trace.Mac |
DatadogTrace |
3.14.0.4 |
DatadogNet.SessionReplay.Mac |
DatadogSessionReplay |
3.14.0.4 |
DatadogNet.WebViewTracking.Mac |
DatadogWebViewTracking |
3.14.0.4 |
DatadogNet.CrashReporting.Mac |
DatadogCrashReporting |
3.14.0.4 |
DatadogNet.Flags.Mac |
DatadogFlags |
3.14.0.4 |
DatadogNet.Profiling.Mac |
DatadogProfiling |
3.14.0.4 |
DatadogNet.Internal.Mac |
DatadogInternal |
3.14.0.4 |
DatadogNet.OpenTelemetryApi.Mac |
OpenTelemetryApi |
3.14.0.4 |
dotnet add package DatadogNet.Core.Mac --version 3.14.0.4
dotnet add package DatadogNet.RUM.Mac --version 3.14.0.4
Licensing
The binding code is MIT; the bundled native binaries are Apache-2.0, built from Datadog's sources, and
each package ships both texts under licenses/.