#17386: fix: Site shows MacOS 14+ but only works on 15+
app: macos
stale
size: XS
Cluster:
macOS Notification and Menu Fixes
## Summary
Updates the macOS app minimum system version from 15.0 to 14.0 to properly support MacOS 14 (Sonoma) users. The website claims the app supports MacOS 14+, but the app was incorrectly configured to require MacOS 15+. The CameraCaptureService.swift already has fallback code for pre-macOS 15 export functionality, confirming macOS 14 support was intended.
## Changes
- Changed `LSMinimumSystemVersion` in `apps/macos/Sources/OpenClaw/Resources/Info.plist` from `15.0` to `14.0`
## Testing
- Verified no macOS 15-only APIs are required (CameraCaptureService has fallback for pre-15)
- Existing codebase already has `#available` checks for macOS 10.15, 11.0, 12.0, and 14.0
Fixes openclaw/openclaw#17377
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Lowers the macOS minimum system version in `Info.plist` from 15.0 to 14.0 so the app matches the website's claim of macOS 14+ support. The `CameraCaptureService.swift` already has proper `#available(macOS 15.0, *)` guards with fallback code, and the `@Observable`/`@Bindable` APIs used throughout are macOS 14+, so the runtime code is compatible.
- The `LSMinimumSystemVersion` change in `Info.plist` is correct on its own
- As noted in prior review feedback, both `apps/macos/Package.swift` and `apps/shared/OpenClawKit/Package.swift` still declare `.macOS(.v15)` as the platform minimum — SPM will enforce that constraint at compile time, effectively overriding the plist change. Those files need to be updated to `.macOS(.v14)` for this change to take effect
- The `swift-subprocess` dependency is declared in `Package.swift` but unused in the source code (the app uses `Foundation.Process` instead). This dependency targets macOS 15+ and would need to be removed or replaced if the platform floor is lowered
<h3>Confidence Score: 3/5</h3>
- This PR is incomplete — the plist change alone does not achieve macOS 14 support without corresponding Package.swift updates.
- The `Info.plist` change is correct in isolation, but SPM's `.macOS(.v15)` platform constraint in both `apps/macos/Package.swift` and `apps/shared/OpenClawKit/Package.swift` will override it at compile time. Additionally, the `swift-subprocess` dependency (unused but declared) targets macOS 15+. Without updating Package.swift files and removing/guarding the unused dependency, this PR will not actually enable macOS 14 support.
- `apps/macos/Package.swift` and `apps/shared/OpenClawKit/Package.swift` need platform version updates to `.macOS(.v14)` for this change to take effect.
<sub>Last reviewed commit: 7c90ef5</sub>
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#14666: fix(macos): align minimum Node.js version with runtime guard (22.12.0)
by sumleo · 2026-02-12
75.6%
#15909: Guard notifications on macOS; fix focus issue and build fixes
by jasonkneen · 2026-02-14
74.1%
#23597: fix(mac): stop Sparkle updater from offering downgrades as updates
by cyberdrk305 · 2026-02-22
69.6%
#3337: fix(macos-app): patch SwiftPM Bundle.module accessor for app bundle
by skymoore · 2026-01-28
69.3%
#10744: fix: update stale MoltbotProtocol paths to OpenClawProtocol
by marezgui · 2026-02-06
69.1%
#17951: fix: macOS app: Skill binary detection does not respect /etc/paths ...
by MisterGuy420 · 2026-02-16
68.6%
#22773: fix(ios): support Xcode 16+ team detection and fix ntohl build error
by brianleach · 2026-02-21
67.8%
#23292: fix(mac): correct sparkle:version for 2026.2.21 in appcast.xml
by SidQin-cyber · 2026-02-22
67.4%
#21075: fix(media): use sips on Node.js + darwin to prevent Photos TCC prompt
by irchelper · 2026-02-19
67.2%
#11208: fix(config): prevent __OPENCLAW_REDACTED__ corruption on config writes
by janckerchen · 2026-02-07
67.0%