Ce n'est pas une solution complète, mais un multi-plateforme (Windows, Mac, Linux) un outil pour la création de packages pour l'auto-mises à jour et les installer est disponible à https://github.com/mendeley/Update-Installer. Cet outil ne permet pas de traiter avec la publication de mises à jour ou de les télécharger.
Ceci a été écrit pour une utilisation avec un Qt en fonction de la demande, mais pour faire la mise à jour de l'installateur de petites, autonome et facile à construire, le programme d'installation utilise uniquement le système standard de bibliothèques C++ runtime, pthreads/libz/libbz2 sur Linux/Mac, de l'API Win32 de Windows, Cocoa sur Mac, GTK avec repli sur Linux). Cela simplifie la livraison des mises à jour qui incluent de nouvelles versions de Qt et d'autres non-système de bibliothèques que votre application peut dépendre.
Avant d'examiner ce que, je dirais:
- Si vous êtes seulement à la construction de deux plates-formes, envisager l'utilisation de standards et éprouvées de mise à jour automatique des cadres pour ces plates-formes - par exemple. De l'éclat sur Mac, Google Omaha sur Windows ou de mise à jour automatique des systèmes intégrés populaire installer des cadres (par exemple. InstallShield). Je n'ai pas essayé de BitRock.
- Sur Mac, le Mac App Store peut être une bonne option. Voir https://bugreports.qt-project.org/browse/QTBUG-16549 cependant.
- Sur Linux, pensez à créer une .paquet deb et un simple référentiel pour l'accueillir. Une fois que les utilisateurs disposent d'un référentiel mis en place, à l'échelle du système logiciel de mise à jour des outils prendra soin de vérifier et installer les nouvelles versions. Les étapes de la mise en place d'un nouveau référentiel sont cependant trop complexe pour de nombreux nouveaux Ubuntu/Debian utilisateurs. Ce que nous avons fait, et aussi de ce que Dropbox et Google ont fait, c'est d'en créer un .paquet deb, qui fixe le référentiel dans le cadre de l'installation du package.
Quelques autres notes sur la création d'un programme de mise à jour:
- Sur Windows Vista/7, si l'application est installée à l'échelle du système (par exemple. dans C:\Program Files\$NOM) de vos utilisateurs verront un effrayant invite UAC lors de la mise à jour tente d'obtenir des autorisations d'écriture sur le répertoire d'installation. Ceci peut être évité, soit par l'installation d'un utilisateur du répertoire accessible à tous (je suppose que c'est ce que Google Chrome ne) ou par l'obtention d'un certificat Authenticode et de l'utiliser pour signer le programme de mise à jour binaire.
- Sur Windows Vista/7, une application .exe ou DLL ne peut pas être supprimé si en cours d'utilisation, mais la mise à jour peut se déplacer à l'existant .exe/DLL dans un répertoire temporaire et un calendrier pour la suppression au redémarrage suivant.
- Sur Ubuntu, 3e partie dépôts sont désactivés après la distribution des mises à jour. Google travaille autour de ce par la création d'un cron job d'ajouter à nouveau le référentiel si nécessaire.