Native M1 Mac exports
-
Pretty sure it is but you need a macOS and XCode version that allows this (I think Big Sur and Xcode 12)
-
I just successfully compiled a universal binary on an Intel Mac running Monterey 12.5.1 +Xcode 13.1, though I still need to run it through Plug Scanner to confirm M1/M2 native compatibility.
I used posts in this thread as a guide but the basic steps were:
- Compile plugin through HISE
- Open the AutogeneratedProject file in Projucer
- Choose x86_64, ARM64, and ARM64e in the project settings (under Xcode MacOS)
- Save + Open in IDE, then compile using Xcode
-
Yes absolutely. I don't think you need to make any changes to the jucer file, it should make a universal binary by default
-
@d-healey said in Native M1 Mac exports:
Yes absolutely. I don't think you need to make any changes to the jucer file, it should make a universal binary by default
Okay to be entirely clear:
if you are on an M1 mac just compiling as normal will get you universal binaries (as long as you have the correct XCode and OS)
if you are on an Intel Mac you need to go thru the process @Goodflow enumerated above (as long as you have the correct XCode version and OS)
??
-
@Lindon I'm not sure you do, unless I customised something in my HISE fork, I'm pretty sure universal binary is automatic. But I'll check now to confirm.
-
I just tested a new project in stock HISE (develop branch). Opening the auto generated Xcode project I can see the architecture is set to to
standard (Apple Silicon, Intel)
-
@d-healey yeah afaik you don't need to change anything on intel. My binaries are double in size to pre M1 size so can only assume there's both in there.
-
@d-healey any M1 Tutorial sir?
That will be so helpful for entire forum -
any M1 Tutorial sir?
Why? There's nothing to see here, just export the plugin and it's compatible with both architectures (except for when you export AAX plugins because they are still x64 only).
-
Can't edit my previous post but confirmed on my end as well. x86_64 + ARM64 are in the plugin build compiled directly from HISE. No additional steps required.
-
@Christoph-Hart Well, There is some information about Xcode, and it looks brand new to me ️
-
@Natan I only have an Intel Mac ;)
-
Thanks everyone for the clarification! Based on the general consensus I thought I'd successfully exported a universal binary (I had 2 versions of Xcode on my Big Sur computer, 10.3 and 13.2.1) and didn't have a way to check until I recently borrowed a fresh, Rosetta-less M1 laptop and it didn't work. In lieu of holding the laptop hostage, I looked into how to check on any Mac via Terminal:
- Export plugin
- Right click > "Show package contents" > Contents > MacOS > [plugin executable file]
- Type "lipo -archs " into Terminal and drag the executable in.
- Terminal returns "x86_64 arm64" if it's a universal binary and "x86_64" if it's Intel only.
Mine were Intel only at first because HISE was using the older version of Xcode to export (I'm guessing because that's what I used to compile HISE itself), so I just had to open the autogenerated Xcode project in the newer Xcode version and export from there. Everything was already set up correctly in the file, so I assume you would not have these issues if your whole setup was not based on an older version of Xcode.