The way we build for macOS right now is to do Intel build, and leverage intel emulation on ARM.
This works, we have single build that works on both ARM and Intel, because intel Kubo binary is also used.
Unfortunately it is not future-proof, as ARM is the bew default.
Regressions like https://github.com/ipfs/ipfs-desktop/issues/2809 will happen.
Right now we are not able to build on macos-latest (14) because it is ARM-based, and there is no Intel version anymore.
Producing universal DMG sounds like a way to go, as long we have extra code that ensures correct Kubo binary is used
This could be done at runtime, or we could fetch both binaries (intel and arm) at build time, and manually merge them into a universal one. This will work, because the new kubo binary will be notarized as part of DMG.
This is the actual fix that needs to happen after workaround from https://github.com/ipfs/ipfs-desktop/pull/2811 was merged.
The way we build for macOS right now is to do Intel build, and leverage intel emulation on ARM. This works, we have single build that works on both ARM and Intel, because intel Kubo binary is also used.
Unfortunately it is not future-proof, as ARM is the bew default.
Regressions like https://github.com/ipfs/ipfs-desktop/issues/2809 will happen. Right now we are not able to build on
macos-latest
(14) because it is ARM-based, and there is no Intel version anymore.Next steps
We need to rework the way our macOS build works.
There is some prior work and research done in https://github.com/ipfs/ipfs-desktop/pull/1856 and in https://github.com/ipfs/ipfs-desktop/issues/2681.
Initial thoughts: