Universal works but ARM64 does not on M1 Mac

When I build universal apps on 2020R2.1, they run just fine on my M1 MacBook air. However, if I build for just ARM64, I cannot start my app because I do not have permission. But I do have permissions set properly, and they are identical to the permissions for my universal app. Is this a Xojo flaw or an Apple flaw? Is there a way to fix this?

OTOMYH, this sounds like an issue with signing/notarization–or, more properly, the lack thereof.

1 Like

I have also seen the permissions Bug when the file transfer corrupted the executable. If you are using zip or box ore one drive or anything like that, it may be causing a problem . try zipping the file on your Mac first before sending it across

Mike,

I am not sending it across but simply compiling directly from Xojo. The file when compiled for ARM64 throws the permissions error, while the universal version does not.

Bob

Are you signing your app with App Wrapper?

Apps on ARM are way more delicate than Intel apps with codesigning. Can you post a screenshot of your error message?

To further clarify:

A permissions error might also be coming from a library or support file within the Application that has incorrect permissions.

App Wrapper will auto-fix these for you when it signs the application (as well as a bunch of other things).

Image 2-9-21 at 6.30 PM

Hi Beatrix,

Above is the screenshot of the error message.

Bob

Sam,

My app only open one text file, and the permissions were properly set. I think this has something to do with signing or notarization.

The error message, which is shown above, suggests it is permission involving the app itself, however. But as noted previously, the permissions were properly set.

Bob

What do you see in Console.app? They will probably be more descriptive / specific error message.

You will probably have to filter it based on your app name, because there’s so much junk in the Console these days…

Its probably because it is not Notarized and not compiled on that machine and therefore he must approve it in the security control panel.

No, but I guess I need to learn how to do that. I dont sell my software, so I have avoided signing and notarization until now.

But what I dont understand is why would I need to sign an ARM64 app and not sign a universal app. Would seem both or neither would need to be signed.

There could be any number of reasons for this. Without seeing both copies of your app I can’t be sure.

If you aren’t signing it at all, then I bet what is happening is that even on the M1 Mac, the Intel version is running. That’s why it works in a universal build. When you make an arm only version, there is no executable that can run. I believe that all arm code has to be signed…

1 Like

I love the advice in the error dialog:

“Contact your computer or network administrator for assistance.”

When I read that I want to tell it: “Hey stupid computer, it’s me the administrator !”

2 Likes

The question I have for the community is this. Has anyone been able to compile an ARM64 app (not universal) and have it run on an M1 mac? If we need to sign these, how do you debug them? Is there a way to sign an app within Xojo? Or are we all going to have to buy AppWrapper to work on these?

The Intel version of my app doesn’t need extra codesign on BS/M1 as it did on BS/Intel to Catalina for accessing full hard disk and running AppleScript.

I just did an ARM compilation of an empty project and it started fine. No codesign at all.

Here are builds you can test:

On my M1 mac running Big Sur 11.3 beta, both run as expected.

Mike,

These both worked, although I had to go through the various processes to get the computer to accept them since Apple could not scan them for malicious content.

So the problem involves my app. I will work on this and report back if I can find and fix the problem.

Thanks for your help,
Bob

Thanks Beatrix. The problem is in my app. I will let you know if I can find out how to fix it.