Create universal binary using lipo

Thanks in advance for any help.

I have two different builds of a plugin (for Mac) - one made a couple of years ago in x86_64 and another made more recently in arm64 only. Each one uses a different version of JUCE… I’d like to combine the two instead of porting the x86 version over to the newer version of JUCE.

Here’s what I’ve tried:

  • Build a universal binary of the newer version in Xcode
  • Run the following command to create the universal binary with the old version:
lipo -create -output -$outfile $x86_version $arm_version
  • Replace the binary in the universal plugin bundles (VST3 & AU) with the $outfile

This Frankenstein plugin shows up as a universal binary when checking with lipo and file commands but, testing on an M1 Mac, only the ARM version is loading in Reaper & Garage Band.

Is there something I need to do in the plugin bundle/lipo command to have both halves of the binary working?

1 Like