A poor man's app updater
livfoss at mac.com
Tue Mar 20 00:00:29 CET 2018
Thanks, Jacque, as usual your ideas are excellent. I’ll see what I can do to follow your advice and report back.
As ever, it’s one of those deployment things that I would imagine affects everyone who publishes an app that isn’t distributed via some app store, but it doesn’t seem a popular topic.
BTW, I certainly use installers, and they’re code-signed too, to simplify matters for users.
> On 18 Mar 2018, at 20:57, J. Landman Gay via use-livecode <use-livecode at lists.runrev.com> wrote:
> On 3/18/18 6:44 AM, Graham Samuel via use-livecode wrote:
>> Now, here is the primitive bit: if the user selects the update option, he/she is invited to carry out the following sequence:
>> - quit the current version (actually this can of course be done automatically via an “OK” button);
> I'd automate this. The fewer steps the user needs to follow, the better.
>> - delete the current version using the facilities of the OS (just trash it from the Applications folder on a Mac, or use the Control Panel on Windows): there is no reliable way of doing this from within an LC standalone, AFAIK;
> I think you'd benefit from distributing some type of installer. When the user clicks the "OK" button, launch the URL of your web site where they can download it. Matthias' LC installer is ready (and the signing version is close to ready) so you could use that while staying within the LC environment. It does all the work for you.
> Users know how to use installers and many Windows users don't understand anything else. There are more users than you think who don't know how to find a file or where apps are stored on their drive. The OS and/or the installer will manage older versions so you don't have to.
>> - download and run a special “Uninstall Helper” program that gets rid of the Working Stack in the writeable area, plus preference files and the like - I don’t see any way of making this happen automatically, since logically it needs to be done **after** the main program is deleted;
> Instead of a helper, I'd put some logic into your app itself. The working stack would have a custom property with its current version number. The standalone would check on launch if the working stack exists, and if so, if its custom version property matches the one it expects. If not, overwrite the existing one with the new one. The new one could either be downloaded from the internet on demand, or stored as a binary in a custom property of the standalone. Either way, overwriting is just a matter of putting the binary content into the existing stack file path on disk.
>> - use the information given at the time of purchase to download the appropriate installer from the server;
>> - reinstall the program and input the registration data from the original purchase.
> So, it sounds like you are already using an installer. If so, they're mostly done. I wouldn't remove the user registration file or preferences; unless it's changed there's no reason to make the user find their registration info again (and many will lose or misplace it, which will increase support requests.)
> The short summary: The user only has to click "OK", the app quits, and the user is taken to a web site to download the update installer. Once they launch that and run the install, everything else is automatic. On first launch, the app replaces any necessary files.
> Jacqueline Landman Gay | jacque at hyperactivesw.com
> HyperActive Software | http://www.hyperactivesw.com
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
More information about the use-livecode