Skip to content

Fix macOS Intel release support#1

Merged
OBress merged 2 commits intoOBress:mainfrom
maxschmieder05-create:fix-macos-intel-release
May 10, 2026
Merged

Fix macOS Intel release support#1
OBress merged 2 commits intoOBress:mainfrom
maxschmieder05-create:fix-macos-intel-release

Conversation

@maxschmieder05-create
Copy link
Copy Markdown
Contributor

@maxschmieder05-create maxschmieder05-create commented May 10, 2026

Summary

Fixes the macOS build/runtime path so the app can run locally on Mac and so releases publish the correct Mac artifacts.

Root causes

  • The release workflow only published VibeToText_<version>_aarch64.dmg, but the README said that ARM64 build would also run on Intel Macs under Rosetta 2. Rosetta works in the opposite direction: it runs Intel apps on Apple Silicon, not Apple Silicon apps on Intel Macs.
  • Local macOS cargo check / tauri dev failed because Tauri validates bundle.resources paths before beforeBundleCommand creates the Windows DLL resource files. CI created placeholder stubs, but local Mac users did not.
  • macOS used the static sherpa-onnx build. On this Mac, Moonshine warm-up crashed during ONNX Runtime session creation with an uncaught Ort::Exception. Switching macOS to sherpa-onnx shared matches the other platforms and loads Moonshine successfully.

Changes

  • Add an x86_64-apple-darwin macOS release matrix entry on macos-13.
  • Document separate Apple Silicon and Intel DMG downloads.
  • Create bundle resource validation stubs from build.rs for local builds.
  • Switch macOS sherpa-onnx from static to shared.
  • Stage macOS .dylib runtime libraries and bundle them into Contents/MacOS.
  • Add @executable_path rpath to the built macOS executable before bundling so dyld can find the staged dylibs.
  • Update release/build docs to describe shared runtime library staging.

Validation

  • Installed missing local prerequisites: Rust via rustup and CMake via Homebrew.
  • Ran npm ci.
  • Ran node --check across src/*.js and scripts/*.cjs.
  • Ran cargo fmt --check.
  • Ran cargo check --all-targets.
  • Ran npm run tauri -- build --debug --bundles app.
  • Launched the debug .app bundle directly with VIBE_TO_TEXT_SELF_TEST=1; Moonshine loaded and self-test passed 3/3 WAV fixtures.

Note: Tauri still emits an unrelated warning that the bundle identifier dev.vibetotext.app ends with .app.

@OBress OBress marked this pull request as ready for review May 10, 2026 19:53
@OBress OBress merged commit 9713af4 into OBress:main May 10, 2026
2 checks passed
This was referenced May 10, 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.

2 participants