When I try to open Greenfoot having downloaded it to my Mac (Os10.8) an error message says it is damaged and should be sent to the trash.
Any ideas what I can do?
I have suggestion for resolving this problem - you should try changing your security and privacy settings to allow applications from "anywhere" to run. In System Preferences, go to "Security and Privacy", and under the "Allow applications downloaded from:" heading choose the "Anywhere" option.
There is a screen-shot of the settings dialog here:
http://apple.stackexchange.com/questions/58050/damaged-and-cant-be-open-app-error-message
(The link above relates to a different application with the same problem).
Please let me know if this helps!
Exactly the same problem with both Greenfoot and BlueJ. Changed my prefs as per above, re-downloaded both apps. Both apps worked as expected. Thanks for the solution. But is that what the security setting does -- disallow apps by damaging the download?
No; the error message is incorrect. It seems to be a bug in Mac OS X 10.8. The application is not "damaged" at all, it's just not signed with a cryptographic key.
No; the error message is incorrect. It seems to be a bug in Mac OS X 10.8. The application is not "damaged" at all, it's just not signed with a cryptographic key.
I don't think this can be the only reason for this error message. Normally, Gatekeeper warns you when an app is not signed, but allows you to open the app by right-clicking on it and choosing "open". It also clearly states that the warning is shown because of the missing signature and doesn't say the application is damaged.
Something must be 'special' with BlueJ and Greenfoot that makes Gatekeeper think the applications are damaged. I havent't found any other non-signed apps with this problem (even the (Java-based) GeoGebra can be run with a right-click on "Open").
The Gatekeeper documentation says about this warning/error: "The app has been altered by something other than the developer. This message will appear no matter the Gatekeeper option chosen."
So it seems as if Gatekeeper "believes" there is a digital signature which doesn't match the file's contents.
http://support.apple.com/kb/HT5290?viewlocale=en_US&locale=en_US
Sure, but BlueJ and Greenfoot are definitely not signed with any key. It's interesting that other apps don't have the same problem, but I don't see why Gatekeeper would treat BlueJ/Greenfoot differently. Also, the text in the Gatekeeper documentation is wrong; the message goes away if you change the settings, as per post by plcs above.
Unfortunately, I don't have an idea why Gatekeeper behaves like that. But if only a handful of applications are affected, I don't think we can expect a patch from Apple (has anyone filed a bug report?)
Is there any chance that Greenfoot and BlueJ will be signed in the (near) future? That would probably solve the problem without having to disable Gatekeeper ;-)
Yes, the next release of both should be signed - we should have those out fairly soon, I hope.
A Google search (for "damaged and can't be opened you should move it to the trash") reveals that Greenfoot and BlueJ aren't the only applications that demonstrate this problem.
(And yes, I know that disabling Gatekeeper is a bit extreme, but unfortunately, when it's as buggy as it apparently is there's not much else we can suggest).
By the way: I've read elsewhere that you can turn Gatekeeper back on after successfully running the application. Once you've run it once, it's no longer checked by Gatekeeper.
By the way: I've read elsewhere that you can turn Gatekeeper back on after successfully running the application. Once you've run it once, it's no longer checked by Gatekeeper.
In that case, it might suffice to remove the extended attribute "com.apple.quarantine" , the command should be something like "xattr -rd com.apple.quarantine Greenfoot.app/" I guess (but haven't tried it out).
I also found a few other applications that seem to suffer from that issue, most of which were written in Java. I'd guess that has something to do with it, yet I don't know what might go wrong here.