3 ms·
It all depends on how sophisticated your app is. How do you run launchd with a drag and drop installer? You don't. That's why there's PackageMaker (made by,
by wendyrowland 18y ago
It all depends on how sophisticated your app is. How do you run launchd with a drag and drop installer? You don't. That's why there's PackageMaker (made by, ahh, oh yeah Apple).
PackageMaker doesn't have an uninstaller. The post tells you how to create one.
- Zev 18y agoHow many apps legitimately need launchd to start up? I can only think of a few apps; Little Snitch, VMware Fusion, iStat and, possibly tablet and printer services. The rest of the stuff, well, Adobe doesn't need to launch a process at boot for me to use Photoshop. OS X is not Linux. launchd is not cron. Don't treat them the same way. There's better way's to autostart an app then (ab)using launchd. Look at the Shared File List API in Leopard or having your app do a quick search with Spotlight to find the files and delete them. You could even name it "Reset Preferences" for the user if you don't want to have a big ugly "Uninstall" button in your program. Apps shouldn't be using launchd in the first place. So there should be no need for an uninstaller.
- skrushnic 18y agoLaunchd was just one simple example. Applications that use PackageMaker are using it because they need to do more than have the user drag and drop a single app bundle. PackageMaker exists for a reason. Launchd is Apple's recommended way of launching applications on startup. If you know something better, I'm all ears. If "apps shouldn't be using launchd" why would launchd possibly exist, and why would they repeatedly recommend it as a replacement for cron, xinetd, mach_init, and init?
- Zev 18y agoDay late, but for launching apps, "Shared File List API" - which i mentioned originally.
- skrushnic 18y agoThis also isn't talking about an "uninstall button." That would be ridiculous. It's talking about including a double-clickable uninstaller bundled with your app. If you don't want to uninstall, don't double click on it.