Before following this guide, make sure you’ve completed the basic compilation setup.
Mac-Specific Considerations
When creating a wider release for macOS, the Funkin’ Crew handles several additional steps:- Creating Universal Binaries (ARM64 + x86_64)
- Code-signing the application
- Notarizing with Apple
Creating a Universal Binary
A Universal Binary allows your game to run natively on both Intel (x86_64) and Apple Silicon (ARM64) Macs.Using the Build Script
The easiest way to create a Universal Binary is to use the included build script:- Compiles a release build for ARM64
- Compiles a release build for x86_64
- Combines both into a Universal Binary
Manual Universal Binary Creation
If you want to understand the process or customize it, here’s what the script does:Code Signing
To distribute your Mac build outside the Mac App Store, you need to sign it with your Apple Developer certificate:Verify Code Signing
Check that your app is properly signed:Notarization
Notarization is Apple’s process of scanning your app for malicious software. Users will see warnings if your app isn’t notarized.Create an app-specific password
Generate an app-specific password in your Apple ID account.
Build Script Reference
Theart/macos-universal.sh script contains the complete build process used by the Funkin’ Crew. You can examine it to understand the full production build pipeline:
Platform Setup
For initial Mac platform setup, refer to Lime’s official documentation:Lime macOS Setup
Official guide for setting up Lime on macOS
Common Mac Build Issues
Architecture Mismatch Errors
Architecture Mismatch Errors
If you see errors about architecture mismatches, ensure you’re building with the correct architecture flag:
- Apple Silicon: Use
-arm64or-DHXCPP_ARM64 - Intel: Use
-64or-DHXCPP_M64
Xcode Command Line Tools Missing
Xcode Command Line Tools Missing
Install Xcode Command Line Tools:
Code Signing Issues
Code Signing Issues
Verify your certificates are installed:You should see your “Developer ID Application” certificate listed.
Next Steps
General Compilation
Return to the main compilation guide
Troubleshooting
Fix common compilation issues
Contributing
Learn how to contribute code
Style Guide
Follow code conventions
