Re: Installer
Re: Installer
- Subject: Re: Installer
- From: Ondra Cada <email@hidden>
- Date: Tue, 21 Mar 2006 18:56:28 +0100
Marcus,
On 21.3.2006, at 18:23, Marcus S. Zarra wrote:
Just to add another voice in the support of the avoidance of
installers.
...
Personally, when I run across an application that uses an installer
I seriously question if it is worth the hassle. An installer tells
me that if I want to remove this application it is going to be a
hassle to track down all the junk that got installed.
Pardon me, but that is actually a voice in the support of *using*
installers (instead of the application which installs whatever it
needs itself at the first launch, which someone has advocated here).
An installer tells you exactly the opposite: when you want to remove
the thing, it is going *not* to be *any* hassle, since all the junk
is properly logged in the receipt. It even used to be easily possible
to open the receipt in the Installer application and uninstall all
the stuff from there by clicking one button -- ask Apple why they
removed this excellent feature!
Contrariwise, whenever a non-trivial application gets installed by
drag'n'drop, there's always some danger it would install its junk
itself -- *without* a benefit of proper receipt. Now *that* is evil.
In other words: of course, if the application is self-contained,
there's no reason to use a package -- and the developer also
generally would not, for it's an unnecessary work for him.
On the other hand, as soon as the app installs *just anything
anywhere* (*), it *definitely should* use a package, for the sole
benefit of automatic receipting.
(*) with the exception of preferences and Application Support
contents. The latter, though, should definitely use the application
identifier just like the former does, (a) to prevent clashes, (b) to
make automatic cleanup possible.
Pity the framework does not contain a method which would
automatically give the application something like this for its
support files path (with a bit improved error checking of course):
-(NSString*)supportFolderOrFilenameCreateFolder:(BOOL)create {
NSString *s=[NSSearchPathForDirectoriesInDomains
(NSApplicationSupportDirectory,NSUserDomainMask,YES) objectAtIndex:0];
s=[s stringByAppendingPathComponent:[[NSBundle mainBundle]
bundleIdentifier]];
if (create) [[NSFileManager defaultManager]
createDirectoryAtPath:s attributes:nil];
return s;
}
'Twould be *much* easier for all if it did, and if all developers
used that...
---
Ondra Čada
OCSoftware: email@hidden http://www.ocs.cz
private email@hidden http://www.ocs.cz/oc
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden