diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c62cb450..01476046 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -133,9 +133,28 @@ jobs: rust_target: aarch64-apple-darwin bundles: "app,dmg,updater" - # macOS Intel dropped: Apple shipped the last Intel Mac in 2023 and - # Rosetta 2 runs the ARM build natively. macos-13 runner backlog - # was also blocking every release tag for ~10 min. + # macOS Intel (#279): reinstated. The earlier "Rosetta 2 runs the + # ARM build" rationale for dropping it was backwards — Rosetta only + # translates x86_64→arm64, so Intel Macs (supported through macOS + # Sequoia) simply cannot run the aarch64 bundle and had NO + # installable artifact. Runner: `macos-15-intel`, GitHub's + # designated migration target after macos-13 retired (Dec 2025); + # it's a standard (public-repo-free) image supported through + # August 2027 — the last x86_64 image Actions will offer. Building + # natively (not cross-compiling from the arm64 leg) keeps the + # per-TRIPLE uv/ffmpeg sidecar fetches, the DMG installer smoke, + # and the ad-hoc signing verification (scripts/ + # verify-macos-signing.sh, PR #290) all exercising the real + # x86_64 artifact on real Intel hardware. The macos-13 queue + # backlog that motivated the original drop is contained by + # fail-fast:false — a slow Intel leg can delay the release run but + # can't fail the other targets. + - os: macos-15-intel + arch: x86_64-apple-darwin + label: "macOS Intel" + rust_target: x86_64-apple-darwin + bundles: "app,dmg,updater" + # Windows: force MSI bundling via --bundles. NSIS fails at makensis # because our PyInstaller payload approaches its ~2 GB stub limit. - os: windows-2022 @@ -291,7 +310,10 @@ jobs: case "$TRIPLE" in aarch64-apple-darwin|x86_64-apple-darwin) # evermeet.cx ships each binary as a separate .zip containing - # a single x86_64 Mach-O executable (runs via Rosetta on arm64). + # a single x86_64 Mach-O executable — natively correct on the + # Intel leg, and runs via Rosetta 2 on the arm64 leg. Both + # darwin TRIPLEs therefore bundle the same payload; only the + # sidecar filename suffix differs. for TOOL in ffmpeg ffprobe; do if [ "$TOOL" = "ffmpeg" ]; then URL="https://evermeet.cx/ffmpeg/getrelease/zip" diff --git a/docs/install/macos.md b/docs/install/macos.md index e552b6f2..e0470094 100644 --- a/docs/install/macos.md +++ b/docs/install/macos.md @@ -35,6 +35,19 @@ Download the latest DMG from the [Releases page](https://github.com/debpalash/OmniVoice-Studio/releases/latest), double-click to mount, drag **OmniVoice Studio.app** into `/Applications`. +Pick the DMG that matches your Mac (check **Apple menu → About This Mac → Chip/Processor**): + +| Mac | DMG to download | +|-----|-----------------| +| Apple Silicon (M1/M2/M3/M4…) | `OmniVoice.Studio__aarch64.dmg` | +| Intel | `OmniVoice.Studio__x64.dmg` | + +The architectures are **not** interchangeable: an Intel Mac cannot run the +`aarch64` build (Rosetta 2 only translates the other direction — it lets Apple +Silicon run Intel apps, never the reverse). If a release predates the Intel +build target and has no `x64` DMG, use the +[install-from-source path](#install-from-source) above instead. + If the first launch is blocked by macOS Gatekeeper ("OmniVoice Studio cannot be opened because the developer cannot be verified"), see the next section — it opens with one right-click, no Terminal.