My Mac application consists of a .app and a helper. I am also having daemon running background. I would like to add auto update capabilities to all these components. Currently it is installed through pkg. Is there any way using sparkle or any other tool to auto update these components individually.
If you put code of the helper/daemon inside resources of your .app, then just the app update could update all of them (you might need to use Sparkle's delegate methods in the app to stop/restart helper&daemon yourself though)
Does that help?
Your pkg package can include a postflight script to stop the existing daemon and start the newly installed version.
Assuming you want to update all the components in one go, look into headless package installation, see #377. We successfully used headless package installation to update our suite of tools – including multiple daemons – from a single application performing the update.
Consider trapping the HUP signal in each daemon and relaunching itself – or maybe just exiting if launchd will auto-relaunch your daemon for you . If this is implemented, your postflight script can be:
killall -sHUP mydaemon