How to implement Sparkle Update framework in a Sandboxed Mac app




.There seems to be a fork of Sparkle which supports Sandboxing. It’s current in beta. The install instructions are slightly confusing.


Download the latest build from https://github.com/sparkle-project/Sparkle/tree/ui-separation-and-xpc 


Open Terminal and cd into the directory


run ‘make release’


That will open up a directory with all the needed files.


The update signing is more important now in your appcast.


So, use /bin/generate_keys to generate dsa_pub.pem and dsa_priv.pem


The official repo should help you do that. 


 


Include 3 files into your project.


org.sparkle-project.InstallerConnection.xpc


org.sparkle-project.InstallerStatus.xpc


org.sparkle-project.InstallerLauncher.xpc


 


Now sign them with your Developer ID keys. You just need to do this once. So, I’m not putting them in the build phase.


 


./bin/codesign_xpc “Developer ID Application” org.sparkle-project.InstallerConnection.xpc


./bin/codesign_xpc “Developer ID Application” org.sparkle-project.InstallerStatus.xpc


./bin/codesign_xpc “Developer ID Application” org.sparkle-project.InstallerLauncher.xpc


 


 If your sandboxes app doesn’t have access to the internet from sandboxing, also include org.sparkle-project.Downloader.xpc


./bin/codesign_xpc “Developer ID Application” org.sparkle-project.Downloader.xpc –entitlements com.apple.security.network.client


 


After including these files in your project. Add a build phase that will copy the above files to the XPC Services folder.


 



 


To debug, open the Console.app and search for your app. The debug logs are quite helpful. I got stuck with not having the dsa_pub in the update I was trying to make.


 







Popular posts from this blog

How to check contact read email or not when send email to Individual?

Christian Cage

How to properly install USB display driver for Fresco Logic FL2000DX on Ubuntu?