Steve Cronin wrote:

At the time the user requests I initiate an NSTask and deploy:
        NSTask *unzipTask=[[NSTask alloc] init];
        [unzipTask setLaunchPath:@"/usr/bin/ditto"];
[unzipTask setArguments:[NSArray arrayWithObjects:@"-x",@"- k",sourcePath,targetPath,nil]];

The problem is that the deployed Helper file has the 'X' icon and displays the "application is damaged.." message.

If I take the Helper.zip file from the 'contents' and manually double click it then the decompression works fineā€¦.

I'm so close and just I can't see what's stopping this deployment.
Is there a ditto flag I need to set that I'm not seeing?

I have seen this problem before in a similar situation. At the time, my diagnosis was that the Finder was seeing the top-level .app dir created, and it looked inside for a Contents/Info.plist etc. before the de-archiving was complete. As a result, Finder's first impression is that the app is incomplete (damaged), and it then takes some work to convince Finder to reverse that opinion. IIRC, I had to trick Finder.

One way was to de-archive to a folder not named "Something.app", but instead just use "Something". Then after the de-archiving finished, rename the dir to "YourApp.app". I even used a temp name that starts with ".", which Finder won't show.

Another way is to trick Finder into re-reading the bundle's contents, by modifying the top-level ".app" folder's mod-date. I did this by creating and then removing a temp file, but you could also set mod- date directly. I just found it easier to create & remove a file, because this was all done in a shell script.

I don't recall which one worked, or worked better, or on which OS versions, so I suggest running a few experiments.

You could also probably fix the problem using the Launch Services API, or running the lsregister command. If you'd rather avoid kluges or magic tricks.

  -- GG

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to