A poor man's app updater

Peter Bogdanoff bogdanoff at me.com
Fri Aug 3 02:32:43 EDT 2018


Hi,

To raise the issue again of updating Mac and Windows apps, I’m referencing this thread between Graham and Jacqueline...

Can existing files in the user’s application directory be saved/modified/replaced by my application?

> On Mar 18, 2018, at 12:57 PM, J. Landman Gay via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
>> - 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.


Can Livecode download a file and replace an existing file in the user’s Application package (Mac) or Program Files folder (Win), or does the OS block that? 

I understand that the application itself would need to be replaced by a new installation, but can supporting files in the same installation directory be replaced while the parent LC standalone is still running without then having to later be restarted?

Is there any news on "Matthias' LC installer”?

> 
> 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.

Does this answer my updating files question? 



> 
>> - 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

Peter Bogdanoff



More information about the use-livecode mailing list