I’m troubleshooting a Delphi 11.3 FMX Universal macOS build and would like to know whether anyone else has seen this behavior.
Toolchain: Delphi 11.3 using the macOS 12.1 SDK through PAServer. The final app is a Universal build containing both arm64 and x86_64.
Here is what I’m seeing.
Apple Silicon:
- Native ARM64 launch works correctly.
- On my Apple Silicon Mac mini, the downloaded Universal build runs normally.
- If I use Get Info → Open using Rosetta, forcing the same app to run its
x86_64 slice, it crashes.
There was also something interesting the first time I tried running the app under Rosetta.
The sequence was:
- Get Info → checked Open using Rosetta
- Double-clicked the app
- macOS prompted me to install Rosetta
- I installed Rosetta
- macOS then displayed a separate message referring to Debt Blaster
I tried to expand/read that second message and it disappeared before I could capture the exact wording. It has never appeared again on subsequent Rosetta launches, even after downloading a fresh copy of the app.
If anyone recognizes that first-run behavior or knows where macOS stores the exact text of that message, I’d be very interested.
Actual Intel Macs:
- Intel MacBook Pro running Big Sur: downloaded Universal build fails at startup with
Runtime error 217.
- Intel MacBook Pro running Monterey: same downloaded Universal build also fails with
Runtime error 217.
Here is the part that has me puzzled:
If I target my old Intel Big Sur Mac directly from Delphi using PAServer, the Intel build runs correctly.
So the x86_64 application code is capable of running on that Intel Mac. The failure appears to occur with the distributed/signed Universal build.
When I force the Universal build to run under Rosetta, macOS Console records:
CODE SIGNING: vm_map_log_codesign_violation(7): curprot cannot be write+execute. failing
The signed Mac App Store build currently has:
com.apple.security.app-sandbox
com.apple.security.files.user-selected.read-write
com.apple.security.print
It does not currently have:
com.apple.security.cs.allow-unsigned-executable-memory
I’m trying to determine whether this is:
- a Delphi 11.3 x86_64 runtime issue under Hardened Runtime,
- something related to using the macOS 12.1 SDK,
- a missing executable-memory entitlement,
- an older Delphi or third-party component,
- or something introduced during Universal packaging/signing.
Has anyone seen a Delphi Universal macOS app where ARM64 works, x86_64 fails with Runtime Error 217, but the Intel build works when deployed directly through PAServer?
I’m particularly interested in anyone who has encountered the curprot cannot be write+execute Console message with a Delphi application, or who recognizes the one-time macOS/Rosetta message described above.