2010-09-16 7 views
2

Je travaille sur un travail dans lequel nous développons un ensemble d'applications multiplateformes utilisant C++, Qt et CMake (entre autres). Sur Mac, nous rencontrons le problème que nous devons empaqueter toutes nos bibliothèques partagées dans chaque .app (actuellement il y en a 4), ce qui entraîne une augmentation assez rapide de la taille du téléchargement et de l'installation. Nous voulons rester amis de la façon de faire de Mac, ce qui signifie que nous voulons prendre en charge la capacité de glisser-déposer des applications. Est-ce que quelqu'un a des idées sur la façon de le faire tout en gardant la taille totale?Méthode recommandée pour déployer une application mac multiplateforme

Le projet est actuellement un ensemble de quatre exécutables ou applications qui utilisent chacun un ensemble commun de bibliothèques partagées (qt et interne). Il existe également un ensemble de reliures ruby ​​qui s'appuient sur les bibliothèques internes. Je réalise que vous pourriez probablement créer un Framework et l'installer dans System/Library/Frameworks, mais je n'ai pas encore beaucoup lu. Faire de cette façon semble comme il serait briser la capacité de faire glisser et déposer l'application entre les machines.

Est-ce que quelqu'un connaît des exemples d'applications qui font une chose similaire sur le Mac? Toutes les idées créatives seraient les bienvenues.

+0

En général, vous ne devriez pas insérer les choses dans ou modifier/System/Library/Frameworks. Cela fait partie de OS X et est géré par Apple. Si vous en avez besoin, pensez plutôt à mettre des éléments communs dans/Bibliothèque/Frameworks. Mais cela signifie généralement les conditionner avec un installateur plutôt qu'avec une application drag-and-drop autonome. Il y a beaucoup à dire pour garder les applications autonomes; le compromis est, bien sûr, l'espace disque et la vitesse de téléchargement potentielle, bien que les deux obtiennent de moins en moins cher. –

+0

Je vais rester loin de l'installation de choses dans/System/Library/Frameworks. Je pense que nous nous penchons sur des applications autonomes, mais le débat est toujours en cours. – jonc

Répondre

1

Faire un installateur, de préférence en utilisant le fabricant d'emballage standard qui vient avec des outils XCode. Avoir un installateur pour une suite d'applications n'est pas si rare. IWork d'Apple possède un programme d'installation et partage des bibliothèques. Il est important de définir une norme .pkg si vous souhaitez distribuer votre application à un client professionnel: l'administrateur informatique souhaite automatiser le processus d'installation à distance, ce qui est possible pour un .pkg standard, mais pas si vous écrivez vous-même un programme d'installation personnalisé. En ce qui concerne les placements de fichiers, vous devez comprendre File System Domains comme décrit par Apple. Fondamentalement, toute la structure du répertoire est répétée trois fois:

/System/ : system domain 
/   : local domain 
/Users/name : user's domain 

Le premier est réservé par Apple. La seconde concerne les choses partagées par les utilisateurs sur une machine. Le troisième est pour un utilisateur spécifique.

Les objets partagés sont placés dans des répertoires appelés Library. Nous avons donc

/System/Library 
/Library 
/Users/name/Library 

Vous aurez généralement installer les choses dans les deux derniers. À l'intérieur Library, les répertoires doivent être organisés comme décrit here. En général, vous mettez les cadres dans

Library/Frameworks/ 

ou

Library/Application Support/your_app/Frameworks/ 
+0

Merci pour les conseils. Il n'est pas toujours clair quels documents de développement d'Apple sont pertinents pour une tâche particulière. Il y a certainement des choses que nous voulons installer dans/Users/name/Library/Application Support. Nous avons un plugin Google Sketchup qui devra y aller. – jonc

Questions connexes