Skip to content

2.0.0 — Xcode 27 support

Choose a tag to compare

@iziz iziz released this 11 Sep 19:06
· 18 commits to master since this release

Xcode 27 support

Xcode 27 refuses to build deployment targets below its supported range, so
libPhoneNumber-iOS could not be compiled with it (#449):

The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 12.0,
but the range of supported deployment target versions is 15.0 to 27.0.x.

Every platform floor now sits at the lowest version Xcode 27 accepts:

Platform 1.7.8 2.0.0
iOS 12.0 15.0
macCatalyst 13 15
tvOS 12.0 15.0
watchOS 4.0 9.0
macOS 10.13 12.0

Applied across Package.swift, all 13 podspecs, libPhoneNumber.xcodeproj, and
both demo projects.

Breaking change

Apps that still support iOS 12–14, tvOS 12–14, watchOS 4–8, or macOS 10.13–11
cannot take this version.
Stay on 1.7.8 if you need those floors; note that
1.7.x cannot be built with Xcode 27.

CocoaPods pins move from ~> 1.7 to ~> 2.0.

Also in this release

  • Package.swift keeps swift-tools-version:5.5. .watchOS(.v9) needs tools
    5.7, so the string form .watchOS("9.0") is used instead — the minimum Swift
    toolchain is unchanged.
  • Removed the deprecated VALID_ARCHS = "arm64 armv7 armv7s i386 x86_64" build
    setting. The armv7/armv7s/i386 slices do not exist at these floors, and Xcode
    uses its own ARCHS default.
  • README gains a Requirements section documenting the minimum deployment targets.

Validation

Built and tested with Xcode 26.5 — Xcode 27 was not available, so the
deployment targets are verified against the range Xcode 27 reports as accepted
rather than by a build on 27 itself.

  • swift build / swift build -c release — succeeded
  • swift test — 231 tests, 0 failures (also under LC_ALL=ko_KR.UTF-8)
  • swift 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.0
  • swift scripts/testXcodeSchemes.swift — all 3 schemes passed
  • swift scripts/publishPodspecs.swift --lint — all 13 podspecs passed

Full changelog: 1.7.8...2.0.0