Skip to content

fix: bump declared minimum macOS deployment target to 10.15#477

Open
tsushanth wants to merge 1 commit into
superwall:developfrom
tsushanth:fix/issue-317-bump-macos-platform
Open

fix: bump declared minimum macOS deployment target to 10.15#477
tsushanth wants to merge 1 commit into
superwall:developfrom
tsushanth:fix/issue-317-bump-macos-platform

Conversation

@tsushanth

@tsushanth tsushanth commented Jun 9, 2026

Copy link
Copy Markdown

Checklist

  • All unit tests pass (no test changes; this only touches `Package.swift` + CHANGELOG).
  • All UI tests pass.
  • Demo project builds and runs on iOS (no SDK code touched).
  • Demo project builds and runs on Mac Catalyst (don't have a Catalyst-capable setup locally — flagging for reviewer; this is precisely the configuration the fix unblocks).
  • Demo project builds and runs on visionOS.
  • I added/updated tests or detailed why my change isn't tested (Package.swift platform declaration — no runtime behaviour to test).
  • I added an entry to the `CHANGELOG.md`.
  • I have run `swiftlint` in the main directory and fixed any issues (no Swift source changed).
  • I have updated the SDK documentation as well as the online docs (no public API changes).
  • I have reviewed the contributing guide.

Why

Closes #317.

`Package.swift` declared `.macOS(.v10_12)` but every macOS-relevant file in the SDK uses Combine, async/await, `Task`, or `UnsafeContinuation` — all of which require macOS 10.15+. There are 651 references to those features across `Sources/SuperwallKit/`.

The 10.12 declaration was never realistic. The issue reporter (and anyone else integrating Superwall into a Mac Catalyst target) hit it as a wall of "is only available in macOS 10.15 or newer" errors deep in Superscript and SuperwallKit source files.

What

Single-character bump in `Package.swift` (`v10_12` → `v10_15`) plus a CHANGELOG entry framed as a fix (deployment-target diagnostics now surface honestly at resolve time instead of failing late in compile).

Podspec is unaffected — `SuperwallKit.podspec` only declares iOS.

Scope

Doesn't change `.iOS(.v13)` or `.watchOS("6.2")`. Doesn't bump SDK version (deliberately tagged `Unreleased` in CHANGELOG — let you decide whether this rides in the next patch or a minor).

Greptile Summary

Bumps the declared minimum macOS deployment target in Package.swift from 10.12 to 10.15, aligning the package manifest with what the SDK's source code actually requires (Combine, async/await, Task, UnsafeContinuation). A matching CHANGELOG entry is added under Unreleased.

  • Package.swift: single character change — .macOS(.v10_12).macOS(.v10_15).
  • CHANGELOG.md: new Unreleased / Fixes bullet explaining the change and the Mac Catalyst integration problem it resolves.

Confidence Score: 5/5

Safe to merge — the change is a one-line manifest correction that makes the declared platform requirement honest; no runtime behaviour is altered.

The only touched files are Package.swift (one character changed in a platform version string) and CHANGELOG.md. The new value 10.15 is the correct minimum for Combine and Swift Concurrency back-deployment, matching what the SDK source already requires. No Swift source, no tests, no public API, and no podspec are affected.

No files require special attention.

Important Files Changed

Filename Overview
Package.swift Single-line bump of .macOS(.v10_12) to .macOS(.v10_15), correctly aligning the declared minimum with the actual Combine/Swift Concurrency requirements of the SDK source.
CHANGELOG.md Adds an "Unreleased / Fixes" entry describing the deployment-target bump; content is accurate and consistent with existing changelog style.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Integrator adds SuperwallKit\nto Mac Catalyst target] --> B{SPM resolves\nplatform constraints}
    B -- Before PR\n.macOS(.v10_12) --> C[Resolution succeeds\nwith wrong minimum]
    C --> D[Compiler hits Combine /\nasync-await unavailable errors\ndeep in SDK source]
    D --> E[❌ Confusing build failure\nat compile time]
    B -- After PR\n.macOS(.v10_15) --> F[Resolution correctly requires\nmacOS 10.15+]
    F --> G{Host target ≥ 10.15?}
    G -- Yes --> H[✅ Builds successfully]
    G -- No --> I[❌ Clear deployment-target\nerror at resolve time]
Loading

Reviews (1): Last reviewed commit: "fix: bump declared minimum macOS deploym..." | Re-trigger Greptile

Package.swift declared `.macOS(.v10_12)` but the SDK uses Combine,
async/await, Task, and UnsafeContinuation throughout — all of which
require macOS 10.15+. The declaration was vestigial; no real consumer
could ever have built against Superwall on 10.12.

Bumping the declared minimum so SwiftPM rejects the integration with a
clear deployment-target diagnostic at resolve time, rather than letting
it through and producing dozens of "is only available in macOS 10.15 or
newer" errors deep in Superscript and SuperwallKit sources.

Fixes superwall#317
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Superscript-ios fails to compile for mac app - package declares macOS 10.12, but uses features that need macOS 10.15

1 participant