How to release a program?
-
There's a page in the documentation:
http://doc.qt.nokia.com/4.7-snapshot/deployment.html -
i really dont understand much on the documentation.
what im trying to say is like when deploying on linux :
@
#>make
#>sudo make install
@or in windows, just double-click the installer file
or in mac os, just double-click the .dmg file and drag&drop the program.. -
Well, you should create a package that includes all the needed files.
If you use a Qt Image Plugin for example, you need to include that in your package and install it in the correct place. The link I posted should explain that.As for Windows, there exist some freeware and/or open source installer software that you can use.
The most difficult is Linux. You can provide packages for each and every linux distribution out there, but that's a lot of work.
Keep in mind, that on Linux and Windows (don't know about Mac but I guess it's the same), you can just put all your files in a single folder, and it doesn't matter where it is installed. That's the easiest way (and something I prefer when I need to install software on my locked PC at work :-) )
-
For Windows I could recommend to have a look at "NSIS":http://nsis.sourceforge.net/Main_Page (Nullsoft Scriptable Install System) together with "HM NIS EDIT: A Free NSIS Editor/IDE":http://hmne.sourceforge.net/
-
I really recommend BitRock Installer. And if your project happens to be OpenSource You can get it for FREE :)
"BitRock OpenSource":http://bitrock.com/open_source_commitment.html -
For Windows installers I can recommend "InnoSetup":http://www.jrsoftware.org/isinfo.php. It's easy to use and we use it in our projects. Don't forget to include the C/C++ runtimes (irrespective wether you use MinGW or Visual Studio, it holds for both!).
The Mac crowd expects all your stuff to be self contained within the "application bundle":http://developer.apple.com/library/mac/#documentation/CoreFoundation/Conceptual/CFBundles/Introduction/Introduction.html. qmake/make already creates the bundle (with .app extension). You will have to add your supporting files to that (resources like sounds, images, and the like). See the "Deploying an Application on Mac OS X":http://doc.trolltech.com/4.7/deployment-mac.html for the places everything has to go. You can distribute your final app bundle as a ZIP file or better as a compressed disk image (DMG). The user will drop the app to where he want's it. Please do not create an installer on the Mac unless you really need to (e.g. to put some files into the system directories). You will make the users of some older macs happy, if you provide a PPC version in your universal binary.
The Linux world is a difficult beast, tbscope already mentioned that. If you're brave enough, you can provide Debian package files (.deb, also for Ubuntu and other Debian based or dep package format using distoros) and RPM package files. This all is a bit of a mess, though. If your app is open source, you may find some volunteers who do the packaging for you on the various platforms.
For all platforms it is a good practice to test your packages on some computer that is not used for development. This way you will know if you have setup everything correctly, before the packages are out in the wild.
-
A side note, someone should make a wiki page for deployment. Maybe easier to grasp ideas, possibilities and alternatives when they’re cleanly structured :)
I’m willing to contribute it too, but I don’t have at precise moment time to do it... Just dump the ideas there and someone can come and fix it :P
EDIT: oh and, I don’t really have anything important add to the topic, just some precise full length instructions may be useful for everyone :)
-
[quote author="Volker" date="1296470997"]...
For all platforms it is a good practice to test your packages on some computer that is not used for development. This way you will know if you have setup everything correctly, before the packages are out in the wild.[/quote]
The part of Volker's answer that I quote above is, in my opinion, of high importance. :)
-
[quote author="Stavros" date="1296497077"]
[quote author="Volker" date="1296470997"]...For all platforms it is a good practice to test your packages on some computer that is not used for development. This way you will know if you have setup everything correctly, before the packages are out in the wild.[/quote]
The part of Volker's answer that I quote above is, in my opinion, of high importance. :)[/quote]
Agreed :) Or maybe I should say, +1. This all is easier to clarify using a wiki article, can put every second line “test it!”.
For especially Qt on Windows, paths tend to be in PATH environment value and hence automatically loading mingw/MSVC libraries and ultimately causing final deployment binaries to fail...