Serious problems with console app on M1 Mac

This happened from one day to another:

I wrote an console app, using sqlite database only, no interface except logging. Running fine. Running multiple in parallel. Great stuff, very satisfying. Now BOOM - it is not running any more, even not one of the dozen versions before. This shows up:

After some googling I decided to look into the console log, very helpful:


Translated Report (Full Report Below)

Incident Identifier: 3D55801B-3149-460B-B9BB-C9EA9BD26278
CrashReporter Key: A12B298A-6177-7022-133C-569B226E1F00
Hardware Model: MacBookAir10,1
Process: pm1decider [47846]
Path: /Applications/PhaenoMind.app/Contents/MacOS/pm1decider
Identifier: pm1decider
Version: ???
Code Type: ARM-64 (Native)
Role: Default
Parent Process: launchd [1]
Coalition: [11410]

Date/Time: 2022-01-18 07:12:26.2218 +0100
Launch Time: 2022-01-18 07:12:26.2149 +0100
OS Version: macOS 12.1 (21C52)
Release Type: User
Report Version: 104

Exception Type: EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
Exception Subtype: UNKNOWN_0x32 at 0x0000000100c54000
Exception Codes: 0x0000000000000032, 0x0000000100c54000
VM Region Info: 0x100c54000 is in 0x100c54000-0x100da4000; bytes after start: 0 bytes before end: 1376255
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
—> mapped file 100c54000-100da4000 [ 1344K] r-x/r-x SM=COW …t_id=90a3c3ad
mapped file 100da4000-100dac000 [ 32K] rw-/rw- SM=COW …t_id=90a3c3ad
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: CODESIGNING 2

Whatever “EXC_BAD_ACCESS” means, after a few hours of reseach I did not get the feeling that I will be able to figure that out. I can see that there appeared a new directory named _CodeSignature - that was not there before and it is not there in other apps. But I do not know how to switch that on or off.

Probably it is an Apple individual certification problem?

System is Mac OS Monterey 12.1 with a Xojo 2021 R3.1.

Btw: Same code still runs on my Intel Mac and in Windows without any problem. So do I have to swap to the “old fashioned” Intel Mac to continue with my development? No M1?

Any Idea?

Your app got killed due to missing or broken code signing.

Are you sure that you used the M1 version before on the M1 and not the Intel one?

Even Console apps need to be codesigned AFAIR.

Did not sign it before. And others are not signed either. And runs on Intel Mac, same code, same app, same OS. But I will try, thanks!

100%. I was very proud to have it running on M1 (task manager).

macOS on Intel runs unsigned code.

But Apple Silicon doesn’t run unsigned code. You need at least an adhoc signature.

It worked until yesterday.

Btw: Do I have to run the code signing or is it done by Xojo automatically?

(Thanks again Christian :grinning: :grinning:)

Xojo makes ad-hoc signatures for built apps.

You might give your terminal access in Settings/Security&Privacy/FullDiskAccess - you have to add terminal.app

Please don’t.

Full Disc Access is only good for some system things like a backup software.
Granting it to anything running in Terminal is a serious problem.

1 Like

There is another console app which does not produce the certificate directory automatically. Also M1 and running … strange.

I re-loaded all development and installer certificates from Apple now again. Everything is in place and looks OK. It seems to work now.

Hope this will persist …

Hi Christian Schmitz

I didn’t know that the XOJO include an AD-HOC automatically, do you have to do something for that or when compiling this is already generated ?

I ask because I’m only working with Mac Intel and even older Xojo !

Xojo does ad-hoc signatures for Apple Silicon since they introduced support for that.

There is a feedback case asking them to do the same for Intel as we expect future macOS versions being more strict.

Some macOS services like Bluetooth, Calendar or Addressbook access only work if your app is code signed.

And it’s possible with a build step to code sign your app.

On the other hand if Xojo signed it and you don’t do your own signing, you may still make changes (e.g. edit info.plist in build step), which break the signature from Xojo.

2 Likes

With ad-hoc codesigning it’s not possible for the app to have Full Disk Access.

2 Likes

Thanks Christian !

I’m in a moment where I don’t know exactly what the next few years will be like because my market niche is small and I put my software on my own machines so I have more control over it but I don’t know how far I can take it this way and that’s why sometimes I do these questions so as not to get totally out of date.

Thanks for the help!

Thanks Beatrix !

I’m also worried about Applescript because I use it a lot in my software, but I see that later, one thing at a time.

That’s not a problem. I use a lot of AppleScripts, too, made in code with NSAppleScriptMBS.

1 Like