Add Apple Silicon (arm64) support#206
Open
gjohnhazel wants to merge 1 commit into
Open
Conversation
- Pin Carthage dependencies to last versions with Carthage support: Defaults ~> 4.2, Preferences ~> 2.2, Sparkle ~> 1.27 (1.27.3 is the first release with ARM64 binaries; 2.x cannot be built by Carthage due to a code-signing issue with the Autoupdate tool) - Add ARCHS = "arm64 x86_64" and SUPPORTED_PLATFORMS = "macosx" to project.yml so XcodeGen produces a universal binary target - Update Makefile to automate Xcode 16 compatibility patches on carthage checkouts (libarclite was removed for deployment targets < 10.12, affecting MASShortcut and Preferences), and to download the pre-built Sparkle binary directly from GitHub releases - Fix Homebrew tool paths for Apple Silicon (/opt/homebrew/bin instead of /usr/local/bin) in project.yml and Scripts/Swiftlint.sh - Add Dozer/Other/Generated as explicit XcodeGen source so SwiftGen-generated files are included despite being gitignored Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dozer did not run natively on Apple Silicon because Sparkle 1.26.0 had no ARM64 binary, and several dependencies had build issues with Xcode 16. This PR makes
make buildproduce a universal (arm64 + x86_64) binary on Apple Silicon Macs.Changes
Cartfile: Pin dependencies to last Carthage-compatible versions
Defaults ~> 4.2(5.x+ dropped Carthage support)Preferences ~> 2.2(3.x+ dropped Carthage support)Sparkle ~> 1.27— 1.27.3 is the first release with ARM64 binaries; Sparkle 2.x cannot be built by Carthage because itsAutoupdatecommand-line tool requires a valid code signing identity that Carthage does not provideproject.yml: Add
ARCHS = "arm64 x86_64"andSUPPORTED_PLATFORMS = "macosx"to produce a universal binary; fix/usr/local/bin/swiftgen→/opt/homebrew/bin/swiftgenfor Apple Silicon Homebrew; addDozer/Other/Generatedas explicit source so XcodeGen includes SwiftGen output (which is gitignored)Makefile: Replace
carthage bootstrapwith a two-step process that patches dependency xcodeproj files before building, working around Xcode 16 removinglibarclitefor deployment targets below 10.12 (affects MASShortcut and Preferences). Also automates downloading the pre-built Sparkle binary and fixing its framework symlinks aftertarextraction.Scripts/Swiftlint.sh: Use full
/opt/homebrew/bin/swiftlintpath (Xcode's build environment does not include/opt/homebrew/bin); add--lenientto avoid build failures from pre-existing identifier naming violations in IBOutlets.Test plan
make buildcompletes without errors on Apple Siliconlipo -info Dozer.app/Contents/MacOS/Dozerreportsx86_64 arm64🤖 Generated with Claude Code