Skip to content

fix: raise minimum deployment target to iOS 15 for Xcode 27 - #78

Merged
RTsta merged 4 commits into
masterfrom
fix/xcode27-min-deployment
Sep 30, 2026
Merged

RTsta merged 4 commits into
masterfrom
fix/xcode27-min-deployment

Conversation

@RTsta

@RTsta RTsta commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Why

Xcode 27 drops the ability to build packages targeting below iOS 15 — the Xcode 27 release notes enforce a minimum iOS deployment target of 15.0, and building against a lower target now fails outright.

What's changing

  • Package.swift: bump .iOS from .v14 to .v15 (.macOS(.v12) / .watchOS(.v9) already satisfy the equivalent minimums, so left unchanged)
  • Removed the now-redundant @available(iOS 15.0, *) attributes across the Upload API (UploadAPIManaging.swift, UploadAPIManager.swift, UploadTask.swift, UploadAPIManagerTests.swift), since that code was already iOS-15-only and the package minimum now matches

Xcode 27 enforces a minimum iOS deployment target of 15.0 and refuses
to build packages targeting anything lower. Bump Package.swift's iOS
platform from v14 to v15 (macOS 12 / watchOS 9 already satisfy the
equivalent minimums) and drop the now-redundant @available(iOS 15.0, *)
attributes in the Upload API, which were already gating that code at
iOS 15 regardless of the package's stated minimum.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@RTsta
RTsta marked this pull request as ready for review September 17, 2026 12:35
The pinned iOS 18.2 simulator no longer exists on GitHub's macos-15-arm64
runner image, breaking the "iOS 18.2, Xcode 16.2" job on this PR and on
master. Move the job to macos-26-arm64 with Xcode 26.6 (default) and its
paired iOS 26.5 simulator runtime, the newest combination actually
available on a current runner image.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ipek
ipek previously approved these changes Sep 22, 2026
Comment thread .github/workflows/ci.yml Outdated
@RTsta
RTsta requested review from ipek and lukasvalkovic September 22, 2026 08:43
Comment thread .github/workflows/ci.yml
runsOn: macos-15
- name: 'macOS 15, Xcode 16.2'
- name: 'iOS Simulator'
destination: 'platform=iOS Simulator,name=iPhone 17 Pro,OS=latest'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this simulator installed on CI?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, they are. The CI tests passed 😊

4. You can retry a specific task in case of failure with ``retry(taskId:)``
5. In case you are not using a singleton instance don't forget to call ``invalidateSession(shouldFinishTasks:)`` once the instance is not needed anymore in order to prevent memory leaks, since the `UploadAPIManager` is not automatically deallocated from memory because of a `URLSession` holding a reference to it.
*/
@available(iOS 15.0, *)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm glad we can get rid of these :)

@RTsta
RTsta merged commit a1d9a7e into master Sep 30, 2026
2 checks passed
@RTsta
RTsta deleted the fix/xcode27-min-deployment branch September 30, 2026 07:23
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.

4 participants