6 votes

Emplacement des dossiers pour l'application MacOS

Je suis en train de porter une application de Windows et Linux à MacOS.

L'application est écrite en Qt. Elle a quelques dylib dépendantes (certaines construites, certaines sdk). Les mêmes bibliothèques et la même version de Qt sont utilisées pour d'autres applications (qui ne sont pas encore prêtes à être portées). Il ne sera pas distribué par l'App Store.

L'application peut lire, écrire, glisser-déposer, imprimer des fichiers utilisateur de type personnalisé. Elle utilise une base de données sqlite3, fournie - les utilisateurs devraient pouvoir naviguer jusqu'à son emplacement (puisqu'ils devraient également avoir la possibilité d'utiliser une base de données à partir d'un autre emplacement). Pendant l'impression, il serait préférable d'utiliser le dossier temporaire de cups pour enregistrer les fichiers bitmap temporaires.

J'ai essayé de trouver la meilleure façon d'installer ce type d'application. L'emballage du paquet est-il adapté à ce type d'application, ou dois-je utiliser le système de fichiers pour placer tous les fichiers requis aux emplacements les plus probables ?

  1. En créant un bundle jusqu'à présent, j'ai les dépendances (y compris les frameworks Qt ) dans le répertoire Contents/Frameworks.

    • Où dois-je placer les fichiers créés par l'utilisateur... à l'intérieur de l'ensemble ou à l'intérieur de l'ensemble de données ? Users/MyCompany/MyProgram répertoire ? J'ai essayé d'enregistrer à l'intérieur... je ne peux pas naviguer à l'intérieur de MyApp.app depuis l'intérieur du programme.
    • Où dois-je placer la base de données sqlite3 ? Si je la place à l'intérieur du bundle (par ex. Contents/Resources ), je ne peux pas y accéder depuis l'intérieur du programme.
    • Où serait installé l'ensemble du paquet ? en /Applications/MyCompany/MyProduct c'est mon avis ?
  2. Sans baluchon : d'après ce que j'ai lu, les endroits suivants peuvent être de bons emplacements :

    • Pour l'exécutable : /Applications comme ci-dessus ?
    • Pour les librairies dépendantes : usr/share/MyCompany/MyProduct ou /Library/MyCompany/MyProduct ?
    • Fichiers utilisateurs évidemment Users/MyCompany/MyProgram
    • Base de données des ressources ? Je n'ai aucune idée de ce qu'est un d'un bon endroit, accessible à tous les utilisateurs, où conserver un tel fichier
    • Cette configuration permettrait d'installer d'autres applications et d'utiliser l'option même framework Qt et les dylibs dépendants... Mais j'ai lu quelque chose à propos de les applications ne fonctionnent pas si les dylibs sont modifiées ?

Quel est le meilleur moyen et, dans ce cas, quels sont les meilleurs emplacements pour les dossiers ?

Dois-je supposer que l'installation est faite avec des droits sudo ? L'installation peut-elle être faite sans les droits d'administrateur ?

4voto

grg Points 181593

Le paquet d'applications doit se trouver dans /Applications. Ce paquet d'applications doit contenir tout . Bibliothèques, dépendances, tout ce dont l'application a besoin pour fonctionner, de sorte que si le paquet d'applications est copié dans le répertoire /Applications d'une autre machine, il devrait pouvoir fonctionner.

L'installation dans /Applications nécessite un administrateur. Si l'administrateur n'est pas disponible, l'emplacement standard pour une application mono-utilisateur est ~/Applications. Il ne faut pas s'attendre à ce que ce répertoire existe.

Si quelque chose doit être "installé" sur le système pour l'application, comme la "base de données de ressources" susmentionnée, l'application doit demander de l'installer :

/Library/Application Support/developername/appname/

Si quelque chose doit être "installé" pour l'utilisateur actuel, il doit être placé dans le même chemin préfixé de son répertoire personnel. Cela ne nécessite pas d'être administrateur.

~/Library/Application Support/developername/appname/

Les dossiers des utilisateurs doivent no être enregistrés dans la racine du répertoire personnel de l'utilisateur. L'utilisateur doit avoir la possibilité d'enregistrer les fichiers où il le souhaite, de préférence avec une boîte de dialogue d'enregistrement standard de OS X.

Aussi

  • Les fichiers de cache doivent y aller :

    ~/Library/Caches/developername/appname/
  • Les préférences des utilisateurs doivent être intégrées :

    ~/Library/Preferences/com.bundleidentifier.plist

    S'il faut sauvegarder quelque chose de plus qu'une simple liste de propriétés

    ~/Library/Preferences/developername/appname/

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X