Not long after I posted previously about an anonymous blogger having problems with running Delphi applications on OS X Lion – the error message was ‘You cannot open the application test01.app because the Classic environment is no longer supported’, which in itself didn’t make any sense – some helpful hints were posted in a comment:
For what it’s worth, I run applications built with XE2 on OSX Lion just fine. Other people do too.
I think it’s unlikely that Carbon APIs would cause this. This error normally occurs for a OS9 application, i.e. something is probably making the loader think it is not a OSX app. They have very different executable formats. This is guesswork, but makes more sense than an old API somehow drawn in – I don’t see how Embarcadero could have done that, given they provide translations of the Apple-provided headers / APIs and were probably working with those same translations themselves.
Some googling would have turned up threads like this: http://forums.digitalspy.co.uk/showthread.php?p=39579653 where other new apps, in this case iTunes itself (!) gives this error. The solutions imply it’s due to corruption of some sort: possibly of the app, the app bundle, permissions, or even the OS.
Things to try would be:
– Clean and rebuild the app (and completely remove it from where it’s located on OSX, to be sure to make the IDE moves everything across again.)
– Open the app bundle and compare it to a working app. What’s different? Can he execute the program located in the bundle from the command line? If not, what error does it give?
– Reinstall the remote debugger. Maybe it’s this thats corrupted, not even his app…? It’s impossible to know from his post when this error occurs (running from the IDE, i.e. debugging? Running the app normally on OSX? …?)
– Open Disk Utility and verify the disk, and check / fix file permissions.
After that, if he still has problems, I’ll admit it’s more complicated. The next appropriate move would be to post on the Embarcadero forums or open a support request.
Thanks to David M for the advice.