Skip to content

swift-launchdarkly-observability incompatible with dd-sdk-ios: SPM target name conflict on OpenTelemetryApi #199

@NikhilVashistha

Description

@NikhilVashistha

Summary

swift-launchdarkly-observability cannot be used alongside dd-sdk-ios in the same SPM dependency graph. Every version of this package (0.1.0 through 0.34.1) triggers an unresolvable conflict.

Error

multiple packages ('opentelemetry-swift-core', 'opentelemetry-swift-packages') declare 
targets with a conflicting name: 'OpenTelemetryApi'; target names need to be unique 
across the package graph

Root cause

  • swift-launchdarkly-observability (0.10.0+) depends on opentelemetry-swift-core (official), which declares an OpenTelemetryApi target.
  • dd-sdk-ios depends on opentelemetry-swift-packages (DataDog's OTel fork), which also declares an OpenTelemetryApi target.
  • SPM enforces globally unique target names, so the two packages cannot coexist.

Affected versions

All versions of swift-launchdarkly-observability. Tested with dd-sdk-ios 2.30.2 (the current latest).

Workarounds investigated

  • DataDog's OTEL_SWIFT=1 flag — switches DataDog to official opentelemetry-swift 1.13.0 (exact), but this is still incompatible with the opentelemetry-swift-core 2.3.0 requirement.
  • Package.resolved pinning — Xcode's fresh resolver always hits the conflict; pinned states are invalidated on cache reset.

Possible fixes

  1. Vendor OTel internals directly so there is no transitive package conflict.
  2. Provide a pre-compiled XCFramework distribution that carries no SPM dependencies.
  3. Coordinate with DataDog to align on a single OTel package — either both use opentelemetry-swift-core or both use DataDog's fork.

Environment

  • Xcode 26 beta, iOS 16+ target
  • dd-sdk-ios 2.30.2
  • swift-launchdarkly-observability 0.1.0 (and confirmed same conflict on 0.34.1 Package.swift)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions