Skip to content

Build universal binary (arm64 + x86_64) so releases run on Intel Macs#300

Open
imanmachukwu wants to merge 1 commit into
JerryZLiu:mainfrom
imanmachukwu:universal-binary-intel-support
Open

Build universal binary (arm64 + x86_64) so releases run on Intel Macs#300
imanmachukwu wants to merge 1 commit into
JerryZLiu:mainfrom
imanmachukwu:universal-binary-intel-support

Conversation

@imanmachukwu

Copy link
Copy Markdown

The shipped DMG is compiled arm64-only (lipo -archs on v2.0.0's binary reports just arm64), so it won't launch on Intel Macs — but nothing in the codebase requires Apple Silicon: deployment target is macOS 14.0 and all frameworks used (ScreenCaptureKit, AVFoundation, GRDB, Sparkle, etc.) are universal-safe. The release script's plain build action just produces only the active architecture on your build machine.

This PR sets ARCHS = $(ARCHS_STANDARD) and ONLY_ACTIVE_ARCH = NO in the app target's Release config, and passes the same flags explicitly in scripts/release_dmg.sh.

Tested: built universal from this branch and have been running it natively on an Intel (i7-9750H) Mac on macOS 15.3 — app launches, records, and runs stably. lipo -archs on the product reports x86_64 arm64.

The released app is currently compiled arm64-only, so it won't launch
on Intel Macs even though the code has no Apple Silicon dependency
(deployment target is macOS 14.0 and all frameworks used are
universal-safe).

- Set ARCHS to $(ARCHS_STANDARD) and ONLY_ACTIVE_ARCH=NO in the app
  target's Release configuration so Xcode builds both slices
- Pass the same flags explicitly in scripts/release_dmg.sh, since the
  plain 'build' action otherwise produces only the active architecture

Verified on an Intel (x86_64) Mac: the universal build launches and
runs natively.
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.

1 participant