Because of the dylibs, yes. When you have Universal dylibs you can build Universal with Xojo from an Intel machine.
Yes.
You may be pleased to know that you won’t be forced to buy a machine for the sole purpose of releasing a M1 build. You’ll be able to build M1/Universal from your Intel machine once you have the M1/Universal dylibs.
Thanks. Forgot to mention I’m using the latest Xojo 2021r3.1
I compiled the .dylibs myself some time ago. There are a lot of dependencies, and I had to copy over some libs from the OS folders and use terminal commands to make all the libs point only to the other libs in the bundle. So it looks like unless I get an M1 and do all that again, I’m stuck with an x86 app.
That second step of copying over .dylibs from OS folders now also has me a little worried…
Question: are the system .dylibs “universal” on M1 macs?
If not, I guess this app won’t be able to be “universal”, and I’ll have to release 2 versions?
My honest advice is to wait until you have an M1 machine to test with.
The ARM frameworks within the macOS are iOS ABI compatible, NOT macOS ABI compatible. So things internally are different and can operate differently. Xojo will shield you from from the differences that Xojo know about.
Sticking with Intel for the time being is the best way to ensure that your application works the way you expect on M1 machines.
However, I would think that you shouldn’t need to bundle system libraries into your app. It might be worth reviewing your build process.
If you’re interested, it is possible to rent M1 machines in the cloud. I did so to work with homebrew in a clean environment. I used macincloud.com with success and was pleased.
Releasing an app for M1 without having one is possible.
You can cross compile your app (and dylibs) on the Intel Mac and ship to customers.
But that is a risky move since you wouldn’t be able to test it.
So get a M1 Mac, maybe refurbished if you are low on cash.
Thank you for checking! And, that’s interesting (macincloud).
The app was first released around 2010. Bundling a bunch of dependencies with it was the only way to ensure operation across different versions of macOS at that time. When I updated it to 64-bit a few years ago, it was the same situation. I doubt that will be different now or in the future, but I could be wrong.