Thursday, September 27, 2012

Resolving "AppName is damaged and can't be opened." Don't move it to the trash!

I recently stumbled across this problem with one of Pentaho's applications. When the application was downloaded and installed on a Mac, launching the .app file resulted in "This app is damaged and can't be opened. Move to the trash".

 Relatively quickly with a few searches, we figure out that GateKeeper was the messenger, but why was she being so harsh? Our apps are unsigned (a signature improvement slated for the next release), but damaged? I was offended.

As it turns out, Apple has a decent support article that explains why you might get a "damaged..." message versus GateKeeper's standard message warning the user that the application is unsigned.

The answer to softening GateKeeper's tone (AKA getting her to only prompt with a security message rather than a "damaged" message) lies within the info.plist file within the .app. Kurtis, our .app builder, found that if he sets the following values, then the .app reverts to being a harmless unsigned .app.

<key>CFBundleSignature</key> 
<string>????</string>

I hope this solution saves someone else the heartache of deploying a"damaged" .app file.

kindest regards, 
Gretchen

5 comments :

Thomas Morgner said...

That just shows how ridiculous retarded that fruit company can be. I love their hardware, but on a software side they suck big time. Even Microsoft has not such a strong 'vendor lock-in' mindset as Apple has.

Anonymous said...

Hi Gretchen, I just tried this and still get the same message. Just to be clear, I am replacing the CFBundleSignature string with "????"?

Thanks,

Rick

Gretchen Moran said...

Rick,

This is the node that we needed to modify, but there are other attributes in the info.plist file that relate to whether an .app is signed or unsigned. If you look at mac's Code Signing Guide, under the section "Code Signing Tasks", you have a set of attributes to examine as possible causes of the problem.

I hope this helps, -G

Cliff said...

I faced the same issue...didn't bother me...I just ran the command:

sh spoon.sh

from Terminal after changing directory to the directory where Pentaho Data Integration was installed

Anonymous said...

had the same issue recently worked fine to just to security and privacy and allow applications from anywhere, not just the app store