Skip to content

Platform resolution issue due to implicit macOS 10.13 default #787

@denis15yo

Description

@denis15yo

Description

AdjustSdk declares only:

platforms: [
    .iOS(.v12),
    .tvOS(.v12)
]

Since macOS is not explicitly declared, SwiftPM applies the default macOS 10.13.

However, the AdjustGoogleOdm target depends on:

GoogleAdsOnDeviceConversion
which declares:

.macOS(.v10_15)

This creates an invalid platform graph:

  • AdjustSdk → macOS 10.13 (implicit default)
  • GoogleAdsOnDeviceConversion → macOS 10.15

SwiftPM fails during dependency resolution with:

the library 'AdjustGoogleOdm' requires macos 10.13,
but depends on the product 'GoogleAdsOnDeviceConversion'
which requires macos 10.15

Why this happens

When macOS is not explicitly declared in platforms, SwiftPM assumes macOS 10.13 by default.

Because of that implicit 10.13, the dependency graph becomes invalid.

Suggested fixes

One of the following:

  1. Explicitly declare macOS 10.15 in platforms:
platforms: [
    .iOS(.v12),
    .tvOS(.v12),
    .macOS(.v10_15)
]

or

  1. Restrict AdjustGoogleOdm target to iOS only using conditional dependencies:
.product(
    name: "GoogleAdsOnDeviceConversion",
    package: "google-ads-on-device-conversion-ios-sdk",
    condition: .when(platforms: [.iOS])
)

Either approach would make the package graph valid for SwiftPM CLI.

Environment

  • Swift 5.x
  • Fails when running swift package resolve or plugin commands
  • Xcode build may succeed due to cached resolution

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions