Skip to content

fix(v3/darwin): update minimum macOS version from 10.15 to 12.0 - #5233

Merged
leaanthony merged 1 commit into
masterfrom
v3-alpha-bugfix/issue-5161-mac-min-version
May 1, 2026
Merged

leaanthony merged 1 commit into
masterfrom
v3-alpha-bugfix/issue-5161-mac-min-version

Conversation

@leaanthony

@leaanthony leaanthony commented Apr 24, 2026 •

Copy link
Copy Markdown
Member

Description

Fixes #5161

Go 1.25+ embeds LC_BUILD_VERSION with minos 12.0 in the Mach-O binary, meaning apps physically cannot run on macOS < 12. The old templates declared LSMinimumSystemVersion as 10.15, causing macOS to allow the launch but then reject the binary silently (app flashes and disappears with no error dialog).

Updating to 12.0 ensures macOS shows a clear "requires macOS 12 or later" dialog instead.

Files changed:

  • v3/internal/commands/updatable_build_assets/darwin/Info.plist.tmpl - 10.15.0 → 12.0.0
  • v3/internal/commands/updatable_build_assets/darwin/Info.dev.plist.tmpl - 10.15.0 → 12.0.0
  • v3/internal/commands/build_assets/darwin/Taskfile.yml - CGO/deployment target 10.15 → 12.0

Type of change

  • Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

  • macOS (template validation tests)

Test file v3/internal/commands/darwin_version_test.go verifies:

  • Generated Info.plist contains 12.0.0
  • Dev plist template has 12.0.0
  • Taskfile has mmacosx-version-min=12.0 and MACOSX_DEPLOYMENT_TARGET="12.0"

Note: This is a template change. Runtime testing on macOS with Go 1.25+ is recommended.

Checklist:

  • My code follows the general coding style of this project
  • I have added tests that prove my fix is effective

Summary by CodeRabbit

  • Chores

    • Updated the minimum supported macOS version from 10.15 to 12.0 in native build environment configuration and deployment manifest settings.
  • Tests

    • Added new tests to validate macOS minimum version configuration, ensuring version consistency is maintained across build templates and deployment manifest files.

Go 1.25+ embeds LC_BUILD_VERSION with minos 12.0 in the Mach-O binary,
meaning the app physically cannot run on macOS < 12. The old templates
declared LSMinimumSystemVersion as 10.15, which caused macOS to allow
launch but then reject the binary silently with no error dialog.

Updating to 12.0 ensures macOS shows a clear 'requires macOS 12 or
later' dialog instead of the app flashing and disappearing.

Updates Info.plist.tmpl, Info.dev.plist.tmpl, and darwin Taskfile.yml.

Fixes #5161
@coderabbitai

coderabbitai Bot commented Apr 24, 2026 •

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 359fd94a-7460-4838-999b-31ddd764212f

📥 Commits

Reviewing files that changed from the base of the PR and between 6c09bff and 025050b.

📒 Files selected for processing (4)
  • v3/internal/commands/build_assets/darwin/Taskfile.yml
  • v3/internal/commands/darwin_version_test.go
  • v3/internal/commands/updatable_build_assets/darwin/Info.dev.plist.tmpl
  • v3/internal/commands/updatable_build_assets/darwin/Info.plist.tmpl

Walkthrough

The pull request updates the macOS minimum deployment version from 10.15 to 12.0 across build templates and configuration files, and introduces a new test suite to validate the version consistency across generated artifacts and source templates.

Changes

Cohort / File(s) Summary
macOS Info.plist Templates
v3/internal/commands/updatable_build_assets/darwin/Info.dev.plist.tmpl, v3/internal/commands/updatable_build_assets/darwin/Info.plist.tmpl
Updated LSMinimumSystemVersion value from 10.15.0 to 12.0.0 in both development and release plist templates.
macOS Build Configuration
v3/internal/commands/build_assets/darwin/Taskfile.yml
Updated build environment flags—CGO_CFLAGS, CGO_LDFLAGS, and MACOSX_DEPLOYMENT_TARGET—from 10.15 to 12.0.
Validation Tests
v3/internal/commands/darwin_version_test.go
Added comprehensive test suite validating minimum macOS version consistency: verifies LSMinimumSystemVersion in generated Info.plist, checks template sources, and validates Taskfile content for version alignment with 12.0.0/12.0.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 A rabbit hops with glee,
From 10.15 to 12 we flee!
macOS builds now clear the way,
With version targets bright today.
No silent crashes, errors shown—
A better experience, fully grown! 🌿

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch v3-alpha-bugfix/issue-5161-mac-min-version

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.11.4)

level=error msg="[linters_context] typechecking error: pattern ./...: directory prefix . does not contain main module or its selected dependencies"


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

@leaanthony
leaanthony changed the base branch from v3-alpha to master April 29, 2026 13:06
@leaanthony
leaanthony marked this pull request as ready for review May 1, 2026 12:41
Copilot AI review requested due to automatic review settings May 1, 2026 12:41
@leaanthony
leaanthony merged commit 16aa74c into master May 1, 2026
51 of 53 checks passed
@leaanthony
leaanthony deleted the v3-alpha-bugfix/issue-5161-mac-min-version branch May 1, 2026 12:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the macOS minimum deployment/version declarations in the v3 Darwin build templates to match Go 1.25+ Mach-O LC_BUILD_VERSION behavior, avoiding “app flashes then disappears” on macOS < 12 by triggering the proper OS requirement dialog.

Changes:

  • Bump LSMinimumSystemVersion in the macOS Info.plist templates from 10.15.0 to 12.0.0.
  • Update the Darwin Taskfile.yml template to build with -mmacosx-version-min=12.0 and MACOSX_DEPLOYMENT_TARGET="12.0".
  • Add tests to validate the updated minimum version values across templates.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
v3/internal/commands/updatable_build_assets/darwin/Info.plist.tmpl Updates LSMinimumSystemVersion to 12.0.0 in the generated macOS Info.plist.
v3/internal/commands/updatable_build_assets/darwin/Info.dev.plist.tmpl Updates LSMinimumSystemVersion to 12.0.0 in the dev plist template.
v3/internal/commands/build_assets/darwin/Taskfile.yml Raises the macOS deployment target / min version flags to 12.0 for native builds.
v3/internal/commands/darwin_version_test.go Adds regression tests to ensure templates/Taskfile reflect the new minimum macOS version.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +49 to +55
templateDir := "updatable_build_assets/darwin"
devPlistPath := filepath.Join(templateDir, "Info.dev.plist.tmpl")

content, err := os.ReadFile(devPlistPath)
if err != nil {
t.Skipf("Template file not found: %v", err)
}

content, err := os.ReadFile(taskfilePath)
if err != nil {
t.Skipf("Taskfile not found: %v", err)
leaanthony pushed a commit that referenced this pull request May 17, 2026
Follow-up to #5233, which updated the build-asset templates and
darwin Taskfile but not the per-example build/darwin/ files.

Updates LSMinimumSystemVersion in Info.plist and Info.dev.plist,
and mmacosx-version-min / MACOSX_DEPLOYMENT_TARGET in each
example's darwin Taskfile.yml across 22 example projects so they
match the new project default.

Refs #5161
leaanthony added a commit that referenced this pull request May 31, 2026
fix(v3): update macOS minimum to 12.0 in example projects

Follow-up to #5233, which updated the build-asset templates and
darwin Taskfile but not the per-example build/darwin/ files.

Updates LSMinimumSystemVersion in Info.plist and Info.dev.plist,
and mmacosx-version-min / MACOSX_DEPLOYMENT_TARGET in each
example's darwin Taskfile.yml across 22 example projects so they
match the new project default.

Refs #5161

Co-authored-by: Wails Documentation Agent <agent@wails.local>
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.

[v3] mac minimum build version should be 12.0

2 participants