Skip to content

chore: raise Apple deployment targets and bump CI to Xcode 26.6 / macos-26 - #352

Merged
NandanPrabhu merged 3 commits into
masterfrom
chore/raise-apple-deployment-targets-ios15
Aug 31, 2026
Merged

chore: raise Apple deployment targets and bump CI to Xcode 26.6 / macos-26#352
NandanPrabhu merged 3 commits into
masterfrom
chore/raise-apple-deployment-targets-ios15

Conversation

@NandanPrabhu

@NandanPrabhu NandanPrabhu commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Description

Raises the minimum Apple platform versions to the last four major versions including the current (derived by walking the list of shipped majors, not `current − 4` arithmetic), and moves CI off the deprecated `macos-14` runner.

Platform Old New
iOS 14.0 16.0
macOS 11.0 13.0
tvOS 14.0 16.0
watchOS 7.0 9.0
visionOS 1.0 1.0 (unchanged — only 3 majors shipped, clamps to oldest)

Walk-back (4 including current): iOS 26/18/17/16, macOS 26/15/14/13, tvOS 26/18/17/16, watchOS 26/11/10/9.

CI: Xcode 16.1 → 26.6; runners macos-14 → macos-26 (and macos-14-xlarge → macos-26-xlarge on pod-lint, tier preserved).

Files: Package.swift, SimpleKeychain.podspec, SimpleKeychain.xcodeproj/project.pbxproj (only values below the new floor), README.md (requirements + Support Policy example), .github/workflows/main.yml.

Also fixes a flaky test: testRetrievingKeys asserted exact ordered equality on keychain key enumeration order, which the Security framework doesn't guarantee. Changed to compare sorted arrays.

Verification

  • swift build ✅ · swift test ✅ 96/0 · macOS xcodebuild ✅ 96/0 · watchOS build ✅ · pod lib lint ✅ (builds all 5 platforms incl. watchOS/visionOS at new floors)
  • tvOS & visionOS simulator test runs stalled on environmental issues (test-host diagnostic timeout / xcresult-bundle save failure — no error: lines); both confirmed compiling via clean xcodebuild build.

…os-26

Raise minimum platform versions to current stable minus four shipped
majors (walked back through shipped majors, not arithmetic):

- iOS 14 -> 15
- macOS 11 -> 12
- tvOS 14 -> 15
- watchOS 7 -> 8
- visionOS: unchanged at 1.0 (only 3 majors shipped, clamped to oldest)

Also move CI off the deprecated macos-14 runner to macos-26 (preserving
the -xlarge tier on pod-lint) and bump Xcode 16.1 -> 26.6.

Updated: Package.swift, SimpleKeychain.podspec, project.pbxproj (only
values below the new floor), README requirements + Support Policy
example, and .github/workflows/main.yml.
keys() returns keychain items in the order SecItemCopyMatching yields,
which the Security framework does not guarantee. The test asserted exact
ordered equality against insertion order, making it flaky across
platforms/runs. Compare sorted arrays instead (still count- and
duplicate-sensitive).
Comment thread Package.swift Outdated
Comment thread README.md Outdated
The policy is 'last four major versions including the current major'
(26/18/17/16 for iOS), so the floor is one higher than the previous
commit:

- iOS 15 -> 16
- macOS 12 -> 13
- tvOS 15 -> 16
- watchOS 8 -> 9

Also reword the Support Policy example: the previous text referenced
iOS 19, which will never ship (Apple jumped iOS 18 -> iOS 26), so
replace the specific future-version number with a description of the
policy condition instead.
@NandanPrabhu
NandanPrabhu force-pushed the chore/raise-apple-deployment-targets-ios15 branch from bc11609 to 8ac07dc Compare August 31, 2026 08:28
@NandanPrabhu
NandanPrabhu merged commit 506741c into master Aug 31, 2026
13 checks passed
@NandanPrabhu
NandanPrabhu deleted the chore/raise-apple-deployment-targets-ios15 branch August 31, 2026 11:29
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.

3 participants