Skip to content

fix: support macOS 13 and add English/Korean localization - #3

Closed
122yjs wants to merge 2 commits into
toddwyl:mainfrom
122yjs:fix/macos13-deployment-target
Closed

fix: support macOS 13 and add English/Korean localization#3
122yjs wants to merge 2 commits into
toddwyl:mainfrom
122yjs:fix/macos13-deployment-target

Conversation

@122yjs

@122yjs 122yjs commented Jul 28, 2026

Copy link
Copy Markdown

Summary

  • compile the Swift executable with the macOS deployment target declared in Info.plist
  • make English the app's development/default language and add Korean localization
  • localize the SwiftUI window, menu-bar menu, alerts, notifications, help text, and Apple Events permission text
  • copy en.lproj and ko.lproj resources without inherited extended attributes
  • add build checks for localization key parity, format-placeholder parity, Chinese UI literals, resource inclusion, code signing, and Mach-O minos
  • remove the iconutil step that fails on macOS 15 Sequoia and use the standard macOS app icon

Problem

The v2.2.0 release declares LSMinimumSystemVersion=13.0, but its executable was built with LC_BUILD_VERSION minos 26.0, so macOS 15 Sequoia refuses to launch it. The existing interface is also hard-coded in Chinese.

Language behavior

  • English: development language and fallback
  • Korean: selected automatically when Korean is preferred in macOS
  • Unsupported preferred languages: fall back to English

Verification

Tested on macOS 15.7.7 Sequoia (24G720), Apple Silicon (arm64), Apple Swift 6.1.2, and macOS SDK 15.5.

$ ./check.sh
Localization checks passed: English default, Korean available
Checks passed: macOS deployment target 13.0

English preference:
Never Sleep | Restore Normal | Current Status | Quit KeepAgentAwake

Korean preference:
잠자기 방지 | 기본 상태로 복원 | 현재 상태 | KeepAgentAwake 종료

Unsupported preference (French):
falls back to English

Additional checks:

  • Swift type-check and full app compilation pass
  • all plist and .strings files pass plutil -lint
  • English and Korean key sets and format placeholders match
  • every statically detectable tr()/trf() key exists
  • built and extracted app bundles contain both localization directories
  • ad-hoc signature verification passes
  • built and extracted executable retain minos 13.0

Closes #2

JSM2 added 2 commits July 28, 2026 23:36
Build for the minimum macOS version declared in Info.plist, ad-hoc sign the local app bundle, and add a regression check that compares the plist value with the Mach-O minos field.
Use English as the development and fallback language, add Korean resources for the window, menu, alerts, notifications, help, and permission text, and validate localization key and format-string parity during builds.
@122yjs 122yjs changed the title fix: honor the declared macOS deployment target fix: support macOS 13 and add English/Korean localization Jul 28, 2026
@122yjs

122yjs commented Jul 30, 2026

Copy link
Copy Markdown
Author

Superseded by the dedicated localization PR #4. Please review #4 instead.

@122yjs 122yjs closed this Jul 30, 2026
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.

v2.2.0 binary targets macOS 26 despite declaring macOS 13

1 participant