Skip to content

chore: set iOS/watchOS deployment target to 26.0 (iOS down, watchOS up) - #2

Merged
weskcode merged 2 commits into
mainfrom
chore/ios-26-deployment-target
Sep 26, 2026
Merged

weskcode merged 2 commits into
mainfrom
chore/ios-26-deployment-target

Conversation

@weskcode

@weskcode weskcode commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Sets the deployment target floor to iOS 26.0 / watchOS 26.0, per Wes's 2026-09-26 confirmation (superseding the 2026-09-25 iOS 27 plan-file edit).
  • Fixes a leftover project-default deployment target: the prior commit updated per-target settings.base overrides but missed project.yml's top-level deploymentTarget key and a few remaining per-target overrides, which XcodeGen also uses for the project's default build configuration. Regenerated with the pinned XcodeGen version.
    • iOS: 26.4 → 26.0
    • watchOS: 11.5 → 26.0
    • SPM (Sources/RHOIDSShared/Package.swift): .iOS(.v18) → .iOS("26.0")
  • Diff vs main: 3 files (project.yml, RHOIDS.xcodeproj/project.pbxproj, Sources/RHOIDSShared/Package.swift), target-lines-only.
  • Dead-code follow-up (not removed in this PR — listing only): Sources/RHOIDS/Models/AlarmSound.swift:144 — #available(iOS 15.2, *) is now always-true under the 26.0 floor. Still-live guards left alone: AlarmKitService.swift:99 (iOS 26.1), FocusLockShieldConfig.swift:49/56, FocusLockShieldAction.swift:31 (iOS 26.5) — all above the new floor.

Test plan

  • Xcode 27.0 (27A266a).
  • iOS: xcodebuild -project RHOIDS.xcodeproj -scheme RHOIDS -destination 'platform=iOS Simulator,name=iPhone 18 Pro,OS=27.0' test — TEST SUCCEEDED, 752/752 passed, 71 suites, 29.383s.
  • watchOS: xcodebuild -project RHOIDS.xcodeproj -scheme RHOIDSWatchTests -destination 'generic/platform=watchOS' build (no shared RHOIDSWatch app scheme exists, so used the shared test scheme covering it) — BUILD SUCCEEDED. Watch tests stay on Xcode Cloud, not run locally here.
  • Full log: ~/Developer/bot-memory/ios27-logs/rhoids.log.

🤖 Generated with Claude Code

weskcode and others added 2 commits September 26, 2026 00:32
Wes corrected the platform floor to 26.0 everywhere (not 27.0 as
originally planned 2026-09-25). This lands both directions at 26.0:
iOS 26.4 -> 26.0 (decrease) and watchOS 11.5 -> 26.0 (large increase).
RHOIDSShared's Package.swift also moves .iOS(.v18) -> .iOS("26.0");
it isn't linked by any watchOS target so no .watchOS platform entry
was added.

project.yml edited, regenerated with the pinned XcodeGen 2.45.4.
Diff is target-lines-only. Clean build on generic/iOS Simulator
(RHOIDS scheme) and generic/watchOS (RHOIDSWatch target); no watchOS
27 runtime installed locally so device/simulator tests aren't
possible here.

Follow-up: dead-code recheck against the new 26.0 floor (not 27.0):
- Sources/RHOIDS/Models/AlarmSound.swift:144 (iOS 15.2) - dead.
- Sources/RHOIDSShieldConfiguration/FocusLockShieldConfig.swift:49,56
  and Sources/RHOIDSShieldAction/FocusLockShieldAction.swift:31
  (iOS 26.5) - still above the 26.0 floor, not dead.
- Sources/Shared/AlarmKitService.swift:99 (iOS 26.1) - NOT dead at a
  26.0 floor (26.1 > 26.0); the plan doc listed this as dead, which
  looks like an error - flagging for Darrow rather than silently
  correcting the plan.
None of these guards were touched in this pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The prior commit (0fdbc92) updated the per-target settings.base
overrides to 26.0 but missed project.yml's top-level `deploymentTarget`
key (iOS 26.4, watchOS 11.5), which XcodeGen also uses for the
project's default build configuration. That left a stray
WATCHOS_DEPLOYMENT_TARGET = 11.5 in the generated pbxproj even though
every target-level config was already correct.

Regenerated with the pinned XcodeGen 2.45.4; diff is target-lines-only,
no other keys touched. Verified no remaining 11.5/26.4 in the pbxproj.
Clean build: RHOIDS scheme on generic/iOS Simulator, RHOIDSWatch target
on generic/watchOS Simulator (no watchOS 27 runtime installed locally,
so no on-device/simulator run).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@weskcode weskcode changed the title chore: lower deployment target to 26.0 chore: set iOS/watchOS deployment target to 26.0 (iOS down, watchOS up) Sep 26, 2026
@weskcode
weskcode merged commit 6d0641d into main Sep 26, 2026
3 of 5 checks passed
@weskcode
weskcode deleted the chore/ios-26-deployment-target branch September 26, 2026 05:48
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.

1 participant