Repository navigation
Raise deployment targets for Xcode 27 (2.0.0) - #450
Merged
Merged
Conversation
Xcode 27 accepts iOS/tvOS 15-27, watchOS 9-27, and macOS 12-27. The
project declared iOS 12, tvOS 12, watchOS 4, and macOS 10.13, so builds
failed with "the range of supported deployment target versions is
15.0 to 27.0.x".
Raise every platform floor to the lowest version Xcode 27 accepts across
Package.swift, all 13 podspecs, libPhoneNumber.xcodeproj, and both demo
projects. macCatalyst moves to 15 to stay aligned with iOS.
watchOS uses the string form .watchOS("9.0") because .v9 requires
swift-tools-version 5.7 and the manifest targets 5.5.
Also drop the deprecated VALID_ARCHS setting, which still listed the
32-bit armv7/armv7s/i386 slices that no longer exist at these floors.
Fixes #449
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Raising the platform floors is a breaking packaging change, which docs/RELEASE_RUNBOOK.md classifies as a major release: apps still supporting iOS 12-14 cannot take this version. Run scripts/updateProjectVersions.swift 2.0.0 to bump every podspec, Xcode project, and README dependency pin, and document the new minimum deployment targets in a README Requirements section. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Owner
Author
|
Linted in dependency order against the raised deployment targets, so the new floors build cleanly for every shipped pod. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #449
Problem
Xcode 27 rejects the project's deployment targets:
iOS is not the only one affected — the declared tvOS 12, watchOS 4, and macOS 10.13 floors are all below what Xcode 27 accepts, so raising iOS alone would fail on the next platform.
Changes
Every platform floor moves to the lowest version Xcode 27 accepts:
Applied across
Package.swift, all 13 podspecs,libPhoneNumber.xcodeproj, and both demo projects (which were at iOS 13.5).Two notes on the mechanics:
Package.swiftkeepsswift-tools-version:5.5, where.watchOS(.v9)does not exist yet (it needs 5.7). The string form.watchOS("9.0")is used instead so the minimum Swift toolchain is not raised as a side effect.VALID_ARCHS = "arm64 armv7 armv7s i386 x86_64"setting is removed. The armv7/armv7s/i386 slices do not exist at these floors, and Xcode uses its ownARCHSdefault.Release type
docs/RELEASE_RUNBOOK.mdclassifies breaking packaging changes as a major release, so this is 2.0.0, not a minor bump: apps still supporting iOS 12–14 cannot take this version.scripts/updateProjectVersions.swift 2.0.0bumped every podspec, Xcode project, and README pin, and the README gains a Requirements section documenting the new floors.Validation
Toolchain: Xcode 26.5 — Xcode 27 was not available locally, so the fix is verified against the accepted range from the issue rather than by a build on 27 itself.
swift build/swift build -c release— succeededswift test— 231 tests, 0 failuresswift testunderLC_ALL=ko_KR.UTF-8— 231 tests, 0 failuresswift scripts/checkUpstreamTestParity.swift— passed (173 upstream / 181 local)swift scripts/checkUpstreamAPIParity.swift— passed (66 upstream / 93 local)swift scripts/checkVersionConsistency.swift— passed for 2.0.0swift scripts/testXcodeSchemes.swift— all 3 schemes passed (libPhoneNumber,libPhoneNumberGeocoding,libPhoneNumberShortNumber)xcodebuild build -scheme libPhoneNumber -sdk iphonesimulator— succeeded, no warningsgit diff --check— cleanswift scripts/publishPodspecs.swift --lint— results added as a comment when the run finishes🤖 Generated with Claude Code