Currently using method that is working. My program calls an update program to check my website for updates. If there is an update, it opens the download program and downloads the update. If it downloaded the update then it opens a program to install the update.
I am looking for suggestions on best ways to update. The process I use requires 3 separate downloads. Just need suggestions of easy ways to update without having 3 programs. The software is accounting software and runs cross platform on Mac and Windows. Don’t want to deal with app stores just want to go directly to my website, look at a text file with the current version and if it doesn’t match then update.
Thanks for any help you can offer.
Take a look at Kaju, I expect you’ll find it does exactly what you need.
I have devised my own update class, but basically all of them work pretty much the same :
- On the web site, I have a small ver.txt file containing the version available
- In the program, I fetch that version file and compare with the current version. If the available version is superior, I present the customer with a window showing readme.txt that describes what the improvements are, and customer has the choice between skip and update.
- If update, I download an installer for the given system (Windows or Mac), in an encrypted zip file.
- I decrypt the installer, run it and quit the app.
There is no program on the web host. Just three files :
ver.txt for the version
readme.txt which contains the release notes
setup.zip which contains the installer.
On Mac, since the installer is not always called setup.exe, I put the name of the installer in the ver.txt file second line.
For Windows, I use a regular installer. For Mac, I use App Wrapper to create the Mac installer.
The method that I use is IDENTICAL to what Michel just described
my “version” of what he called “ver.txt” contains the version #, the app name, the build date, and the download format (zip/dmg)
Strongly suggest you check out Kaju, and not just 'cause I wrote it. It offers a secure, cross-platform way to update with lots of developer options, and a GUI (and command-line tool) to manage it. The READ ME is extensive and should answer any questions, and you literally cannot beat the price. (It’s free.)
We, actually you could, but that would be nitpicking
(but I do love to disprove assumptions)
in my case I have been programming for many years … but not being an expert I do not understand well how kaju works. I think the method exposed by @Michel Bujardet is easier
Kaju is indeed very complete. But when I designed my own, it simply did not exist.
Since then, sorry Kem, but the installed base of my apps is such, I cannot change system now.
I’m not trying to talk you into anything, but you could if you wanted to, you’d just have to run both systems in parallel for a (long) while.
But, being an advocate of solutions to that address problems, I can certainly understand why you wouldn’t want to bother since your system is working for you.
Indeed anything is possible. Fact is, I am kind of conservative. If something is not broken, I very seldom touch it.
Actually, until I started selling software on CDs and on the Amazon App Store, the need for an update system was less pressing, since most of my software was sold through the MAS and the Windows Store, which have their own update system.
Now I do about as much in the Amazon App Store as in the MAS, but for mostly Windows, and about the same in software on CD, and both need an update system, especially CDs. The Amazon App Store will let users download the latest version, but it is not automatic. They have to do pretty much the same as the “Purchases” section in the MAS.
I believe anybody who is serious about distributing end user software out of the MAS or the Windows Store must have an update system, and Kaju certainly saves the time needed to develop a proprietary system.
I may want to tell that I also have an updated at Monkeybread Software:
We use it for all our projects just fine.
I’ve rolled my own updaters as Michel describes. The advantage of Kaju is that (I think) it will update the app in situ, without the user having to quit and run an installer. The disadvantage of Kaju (for me) is that it’s incompatible with RS2012, my preferred IDE.
Yes, Kaju updates in place on all platforms as long as the user has permission to write to the application’s directory and files.
I also made my own updater like you. Kaju is certainly more robust and secure than what we made.
I promise myself to take a look into Kaju and use it to improve my updater … one day !
Thanks everyone for the help. Looks like there are a couple of good options. Going to look more into Kaju and more into the Monkeybread updater. I currently use some of the Monkeybread plugins so Im familiar with them. Thanks everyone for the help.