Créer un paquet avec OSX¶
QT propose tout ce qu'il faut pour créer un paquet directement :- compiler l'application dans QT Creator
- ouvrir un terminal
- se déplacer dans le bon dossier ou se trouvent les sources de l'application
- lancer la commande suivante
macdeployqt nom_du_fichier.app -dmg
Et hop vous obtenez un fichier .dmg directement utilisable sur n'importe quel mac. À tester mais ça semble beaucoup plus facile que de passer par l'application PackageMaker.
Note: Pour le paquet CalculMental j'ai eu un pb assez idiot: l'emplacement des images pose soucis, j'ai donc du modifier main.cpp (cf code source de calculmental 1.0) et ensuite copier les images dans l'arborescence en dessous de l'exécutable avant de lancer le macdeployqt !
Note, pour ajouter des ressources et autres données avant la création du fichier dmg, voici la commande lancée par macdeployqt:
hdiutil create toto.dmg -srcfolder abuledu-monecoleadistance.app -format UDZO -volname abuledu-toto
Passage obligé par la case "intervention manuelle"¶
Pour que la ptite boite qui s'ouvre lorsqu'on double clique sur le dmg il faut passer par une étape manuelle détaillée dans le 3° lien en bas.
Note 2011.12.26: découverte du script create-dmg qui permet de scripter ce qui était encore manuel !
Automatisation totale¶
Télécharger le paquet create-dmg_pour_macosx.tar.bz2 qui se trouve sur https://redmine.ryxeo.com/projects/ryxeo/files et l'extraire à la racine du compte utilisateur mac.
Ensuite, on utilise le script macos/build.sh qui se trouve normalement dans chaque logiciel. Exemple du script build-mac.sh de monecoleadistance:
#!/bin/bash #script de creation de l'image pour OSX #Eric Seigne 2011 <eric.seigne@ryxeo.com> #documentation https://redmine.ryxeo.com/projects/ryxeo/wiki/Cr%C3%A9er_un_paquet_avec_OSX APPNAME="leterrier-mrpatate" APPVERSION="0.2" VOLNAME="AbulEdu LeTerrier MrPatate ${APPVERSION}" VOLICON="macos/icones/leterrier-mrpatate.icns" #On stoppe dès qu'on rencontre un problème set -e if [ -d /tmp/build-dmg ]; then echo "Erreur: répertoire temporaire de build existant, merci de supprimer /tmp/build-dmg" echo "et relancez ce script ensuite ..." fi #on fabrique une arborescence "dmg" temporaire mkdir /tmp/build-dmg #on cherche ou on se trouve et on change de repertoire le cas echeant if [ -f ../${APPNAME}.pro ]; then cd .. fi #qmake qmake ${APPNAME}.pro -r -spec macx-g++ CONFIG+=release #compilation make -w -j4 #on utilise les outils de Qt pour trimbaler le Qt framework et les dependances Qt macdeployqt ${APPNAME}.app #copie des petites choses indispensables ... #cp -a ${APPNAME}.app /tmp/build-dmg/ #cp -a MacOS/.DS_Store /tmp/build-dmg/ #cp -a MacOS/.background /tmp/build-dmg/ #cp -a MacOS/Applications /tmp/build-dmg/ #copie des donnees cp -a data ${APPNAME}.app/Contents/Resources/ #creation du fichier dmg ... ancienne methode avant de trouver le create-dmg #hdiutil create ${APPNAME}-${APPVERSION}.dmg -srcfolder /tmp/build-dmg -format UDZO -volname ${APPNAME} #nouvelle methode donc: ~/create-dmg/create-dmg --window-size 415 295 --volname "${VOLNAME}" --volicon ${VOLICON} --background "macos/.background/background.png" ~/Desktop/${APPNAME}-${APPVERSION}.dmg ${APPNAME}.app #nettoyage rm -rf /tmp/build-dmg
Sources d'informations¶
- http://doc.qt.nokia.com/4.7/deployment-mac.html#creating-the-application-package
- https://github.com/chris2511/xca/blob/master/Makefile
- http://joliclic.free.fr/mozilla/howto/dist-xul-app/chapter_4.php
Créer une icône icns¶
png2icns leterrier-mrpatate.icns leterrier-mrpatate-256.png leterrier-mrpatate-128.png leterrier-mrpatate-48.png leterrier-mrpatate-32.png
Pour compiler¶
Pour pouvoir compiler les applications il faut installer quelques "bricoles" en plus de Qt Creator :
- La lib exiv2
brew install exiv2