Comment créer un programme d'installation natif pour Mac OS X (sur une plateforme autre que Mac)?

StackOverflow https://stackoverflow.com/questions/283480

  •  08-07-2019
  •  | 
  •  

Question

Comment puis-je créer un programme d’installation natif pour Mac OS X pour mon application, sur une plateforme autre que Mac?

Par exemple, j'ai un ordinateur Windows et une application Java. Je souhaite que le PC Windows crée un programme d’installation (éventuellement dans une archive .dmg) compatible avec le programme d’installation Apple.

Était-ce utile?

La solution

Il est maintenant possible de créer un programme d’installation natif pour Mac OS X sur une plate-forme autre que Mac. En tant que Louis Gerbarg, le problème réside dans le fichier de nomenclature. Cependant, une version open source de mkbom (basée sur le code osxbom de Joseph Coffland) est désormais disponible à l'adresse suivante:

http://hogliux.github.io/bomutils

Le site Web propose également un didacticiel pas à pas sur la création d’un programme d’installation Mac OS X sous Linux ( http://hogliux.github.io/bomutils/tutorial.html ).

Ma société construit régulièrement des installateurs Mac OS X sur Linux avec cette méthode et, jusqu'à présent, nous n'avons rencontré aucun problème majeur.

Autres conseils

Comme d'autres l'ont déjà fait remarquer, vous prenez vraiment la solution difficile à ce problème et vos utilisateurs maudiront votre nom, à moins que vous n'ayez une vraiment bonne raison de le faire. Il est vrai que certains types d’application nécessiteront des programmes d’installation pour Mac OSX. Ceux-ci incluent généralement:

  • Applications qui installent des pilotes personnalisés (extensions du noyau, par exemple)
  • Applications qui doivent installer des infrastructures ou d'autres ressources qui, pour une raison quelconque, n'ont pas pu être empaquetées dans le lot d'applications
  • Les applications qui doivent être exécutées en tant que service système et doivent par conséquent exécuter des scripts de post-installation pour lancer l'application au démarrage
  • Des programmes mal écrits nécessitant certaines modifications du système de l'utilisateur (par exemple, la définition d'autorisations sur un dossier ou quelque chose), et les mains du développeur sont liées par les services du marketing pour distribuer l'application de la manière la plus pénible possible

D'accord, ce dernier point est un peu sarcastique, mais avez-vous ma dérive ici? :) Fondamentalement, si vous écrivez une application utilisateur final normale, vous devez la distribuer de la manière habituelle attendue par les utilisateurs Mac, à savoir un fichier DMG contenant le lot de votre application. Ou si vous voulez vraiment être chic, collez un alias dans le champ "Applications". dossier à l’intérieur du DMG pour aider l’utilisateur à y faire glisser le programme. Sauf si vous écrivez quelque chose qui doit s’installer dans dans le système, plutôt que simplement être exécuté par le système , il n’ya aucune raison d’utiliser un programme d’installation ici. N'oubliez pas qu'il s'agit d'OSX, qui contient déjà un JRE Java entièrement fonctionnel. Vous n'avez donc pas à vous soucier de conditionner le JRE dans un programme d'installation ou autre.

Maintenant que vous avez été correctement critiqué pour avoir posé cette question, je vais y répondre en supposant que votre logiciel entre dans l'une des catégories ci-dessus. Vraiment, votre meilleur choix serait d’opter pour une solution commerciale telle que l’installateur VISE (qui, une fois encore, je peux affirmer avec certitude que la grande majorité des utilisateurs de Mac reculeront de peur en installant un produit fabriqué avec cet outil), ce qui vous permet de faire exactement ce que vous recherchez ici - en gros, de créer un programme d’installation multiplate-forme conçu pour les différentes plates-formes que vous souhaitez prendre en charge à partir d’un seul fichier d’installateur.

Encore une fois, votre meilleur pari ici est de faire ce avec quoi les utilisateurs de cette plate-forme sont le plus à l'aise (c'est pourquoi toutes les réponses à votre question vous incitent à ne pas créer un programme d'installation). Cela signifie toutefois que si vous devez réellement créer un programme d’installation, vous devez utiliser un framework non multi-plateforme; Les utilisateurs de Windows se sentiront plus à l'aise lorsqu'ils recevront un programme d'installation MSI standard, tandis que les utilisateurs de Mac se sentiront plus à l'aise avec un programme d'installation Apple. Le programme PackageMaker est notoirement limité, cependant, si vous devez, vous devez utiliser iceberg à la place. Cela signifiera un peu plus de maintenance pour vous, puisque vous aurez besoin de gérer après deux (ou plus) installateurs séparés, mais si votre logiciel est vraiment complexe au point d'exiger cela, vous devriez être prêt à faire le sacrifice pour le confort. de vos utilisateurs.

Alors, quelques petites questions.

Tout d’abord, pourquoi voulez-vous un installateur? La plupart des utilisateurs de Mac préfèrent les applications qui sont simplement installées par glissement. Si vous n'écrivez pas de code spécifique à Mac OS X, il est difficile d'imaginer que vous deviez placer des bits dans des emplacements spéciaux, tels que Support technique ou LaunchDaemons. En supposant que tout ce que vous avez vient d’être dans un dossier, pourquoi s’embêter avec un installateur?

Deuxièmement, pourquoi la création du programme d’installation Mac sur un Mac poserait-elle un problème? Vous avez sûrement un macintosh pour tester l’application (vous ne l’envoyez pas aveuglément pour Mac sans la tester sur un Mac, non?).

D'accord, cela dit, si vous avez encore une bonne raison de construire cela sur un PC, il y a des éléments qui ne vont pas être faciles. Fondamentalement, un fichier .pkg est constitué de scripts de texte, de localisations, d’un fichier d’archive (Archive.pax.gz) et d’une nomenclature (Archive.bom).

En supposant que peu de changements soient apportés entre les versions, vous pouvez créer le programme d’installation sur un Mac, puis simplement reconstruire les noms de domaine bax et pax.gz, les remplacer dans le fichier .pkg existant et regrouper quelques métadonnées. La pax devrait être assez facile à gérer (pax est un format d'archive standard), mais le fichier bom peut s'avérer un peu plus compliqué, car je ne pense pas qu'il soit documenté publiquement, et je doute que les outils pour les créer (mkbom) soient une partie de darwin (pas opensource). Vous allez donc avoir besoin de comprendre cela et d’écrire un outil personnalisé pour créer le fichier bom.

En d'autres termes, cela représente probablement une charge de travail importante.

La méthode habituelle pour installer une application sur un Mac consiste à faire glisser l'application dans le dossier de l'application. La plupart des programmes sont fournis sous forme de fichier DMG contenant l'application et un lien symbolique vers le dossier de l'application. Pourquoi voudriez-vous qu'il en soit autrement? Vous devez penser à Mac pour créer une excellente application Mac! La présentation est très importante, en particulier pour les utilisateurs de Mac.

Consultez ce code pour lire les fichiers de nomenclature: https://cauldrondevelopment.com/svn/osxbom/trunk

Mettez tout dans un fichier JAR, ajoutez-le à un fichier ZIP. Fait.

Mais sérieusement, vous souhaitez distribuer votre application aux utilisateurs Macintosh sans la tester au préalable? Sur quelle planète êtes-vous!?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top