86 votes

Création d'un "installateur" dmg pour Mac OS X

J'ai réalisé ma première application Qt pour Mac OS X. Maintenant, je veux créer un beau fichier .dmg qui permettra à l'utilisateur de l'installer facilement. Je pense à quelque chose comme firefox a (voir l'image) : enter image description here

Je suis totalement novice en la matière, alors je ne sais même pas par où commencer.

2 votes

Peut-être que cela peut vous aider stackoverflow.com/questions/96882/

0 votes

Je n'ai pas vraiment besoin qu'il soit automatisé, je préférerais quelque chose de plus simple pour me lancer ;)

3 votes

Cela peut vous être utile : el-tramo.be/guides/fancy-dmg

95voto

Linus Unnebäck Points 1855

Mise à jour de cette question en fournissant cette réponse.

appdmg est un programme en ligne de commande simple, facile à utiliser et à code source ouvert qui crée des fichiers dmg à partir d'une simple spécification json. Jetez un coup d'oeil au readme sur le site officiel :

https://github.com/LinusU/node-appdmg

Un exemple rapide :

  1. Installer appdmg

    npm install -g appdmg
  2. Écrire un fichier json ( spec.json )

    {
      "title": "Test Title",
      "background": "background.png",
      "icon-size": 80,
      "contents": [
        { "x": 192, "y": 344, "type": "file", "path": "TestApp.app" },
        { "x": 448, "y": 344, "type": "link", "path": "/Applications" }
      ]
    }
  3. Exécuter le programme

    appdmg spec.json test.dmg

(disclaimer. Je suis le créateur d'appdmg)

0 votes

Par rapport à d'autres solutions, c'est étonnamment simple.

1 votes

Yay, Linus way to go. Uppskattar det.

0 votes

Y a-t-il une chance d'avoir le binaire compilé pour OSX 10.6.8 ? Je ne sais pas comment compiler vos sources... (je ne suis pas vraiment un gars de la pomme ici...)

20voto

Simon Urbanek Points 7803

C'est assez simple - l'idée de base est de créer une image vierge en utilisant la fonction Utilitaire de disque (faites en sorte qu'elle soit assez grande pour contenir vos affaires - la taille exacte n'a pas d'importance), ouvrez cette image en utilisant Finder pour y placer vos affaires et les arranger comme vous le souhaitez (utilisez le clic droit et la touche Afficher les options d'affichage pour définir des éléments tels que la taille de l'icône ou l'image de fond). C'est presque tout - il ne reste plus qu'à convertir cette image r/w en une image compressée : éjectez-la et utilisez la commande Convertir en Utilitaire de disque pour le convertir en une image compressée.

18voto

Igor Augusto Points 326

Vous pouvez vérifier este ( http://codevarium.gameka.com.br/how-to-create-your-own-beautiful-dmg-files/ ) tutoriel. Il vous montre étape par étape comment créer de beaux DMGs en utilisant iDMG (qui est un logiciel libre), Finder et un terminal. C'est assez facile.

9voto

JosephH Points 21074

Aucune des réponses existantes n'a vraiment fonctionné pour moi ; une réponse est manuelle, et les deux autres options - iDMG et node-appdmg - impliquent toutes deux l'applescripting du finder, ce qui n'est pas idéal.

La meilleure façon de le faire en tant qu'étape de construction automatique est de créer un template.dmg qui ressemble exactement à ce que vous voulez (en suivant les instructions normales, par exemple la réponse de Simon Urbanek, mais sans faire la dernière étape de compression), puis dans votre build script :

  1. Utilisez hdiutil pour joindre l'image
  2. Utilisez cp etc pour copier l'application dans l'image montée
  3. hdiutil detach
  4. compressez l'image : hdiutil convert "in.dmg" -quiet -format UDZO -imagekey zlib-level=9 -o "MyApp-0.3.dmg"

Il y a un makefile à https://github.com/remko/fancy-dmg/ qui contient ces étapes.

2 votes

Nous travaillons à l'abandon d'AppleScript et à l'introduction de node-appdmg sur toutes les plates-formes. Si vous voulez suivre le travail, jetez un coup d'œil ici : github.com/LinusU/node-appdmg/issues?milestone=1&state=open

1 votes

@LinusUnnebäck C'est génial, merci de partager ça ! Même le simple fait de supprimer la dépendance à applescript serait excellent.

0 votes

Pas de problème :) nous devons juste être capables d'écrire notre propre .DS_Store et tout est vraiment compris, je dois juste trouver le temps de l'implémenter. ( github.com/LinusU/node-appdmg/issues/14 )

3voto

Martin Delille Points 1399

Ce script rend la génération de DMG très facile : https://github.com/andreyvit/create-dmg

Il n'y a pas non plus de dépendance vis-à-vis des nœuds :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X