Ich portiere eine Anwendung von Windows und Linux auf macOS.
Die Anwendung ist in Qt geschrieben. Es hat ein paar abhängige dylib (einige gebaut, einige sdk). Die exakt gleichen Bibliotheken und die gleiche Qt-Version werden für einige andere Anwendungen verwendet (die noch nicht portierbar sind). Es wird nicht über den App Store vertrieben.
Die Anwendung kann benutzerdefinierte Benutzerdateien lesen, schreiben, per Drag-and-Drop verschieben und drucken. Es verwendet eine sqlite3-Datenbank, vorausgesetzt, Benutzer sollten in der Lage sein, zu ihrem Speicherort zu navigieren (da sie auch die Möglichkeit haben sollten, eine Datenbank von einem anderen Speicherort aus zu verwenden). Während des Druckens ist es am besten, den temporären Ordner cups zu verwenden, um temporäre Bitmap-Dateien zu speichern.
Ich habe versucht herauszufinden, wie man diese Art von App am besten installiert. Ist die Bundle-Verpackung für diesen App-Typ geeignet oder sollte ich das Dateisystem verwenden, um alle erforderlichen Dateien an den wahrscheinlichsten Speicherorten abzulegen?
Bisher habe ich beim Erstellen eines Bundles die Abhängigkeiten (einschließlich Qt-Frameworks) im Verzeichnis Contents/Frameworks.
Users/MyCompany/MyProgram
Verzeichnis? Ich habe versucht, darin zu speichern ... kann nicht innerhalb des Programms MyApp.app durchsuchen.Contents/Resources
), kann ich vom Programm aus nicht darauf zugreifen./Applications/MyCompany/MyProduct
ist meine Vermutung?Ohne Bündel: Nach dem, was ich gelesen habe, können die folgenden gute Orte sein:
/Applications
wie oben?usr/share/MyCompany/MyProduct
oder /Library/MyCompany/MyProduct
?Users/MyCompany/MyProgram
Was ist der beste Weg und in diesem Fall, welches sind die besten Ordnerspeicherorte?
Soll ich davon ausgehen, dass die Installation mit sudo-Rechten erfolgt? Kann die Installation ohne Admin-Rechte durchgeführt werden?
Das Anwendungspaket sollte in /Applications abgelegt werden. Dieses Anwendungspaket sollte alles enthalten . Bibliotheken, Abhängigkeiten, alles, was die App zum Ausführen benötigt, damit das Anwendungspaket ausgeführt werden kann, wenn es in das /Applications-Verzeichnis eines anderen Computers kopiert wird.
Für die Installation in /Applications ist ein Administrator erforderlich. Sollte der Administrator nicht verfügbar sein, ist der Standardspeicherort für eine Einzelbenutzeranwendung ~/Applications. Dieses Verzeichnis sollte nicht vorhanden sein.
Wenn für die App etwas auf dem System „installiert“ werden muss, wie z. B. die oben erwähnte „Ressourcendatenbank“, sollte die App zur Installation auffordern in:
/Library/Application Support/developername/appname/
Sollte etwas für den aktuellen Benutzer „installiert“ werden müssen, sollte es in denselben Pfad gehen, dem sein Home-Verzeichnis vorangestellt ist. Dies erfordert keinen Administrator.
~/Library/Application Support/developername/appname/
Benutzerdateien sollten nicht im Stammverzeichnis des Benutzerverzeichnisses gespeichert werden. Der Benutzer sollte die Möglichkeit haben, Dateien zu speichern, wo immer er möchte, vorzugsweise mit einem standardmäßigen OS X-Speicherdialog.
Auch…
Cache-Dateien sollten hineingehen:
~/Library/Caches/developername/appname/
Die Benutzereinstellungen sollten hineingehen:
~/Library/Preferences/com.bundleidentifier.plist
Wenn mehr als eine einzelne Eigenschaftsliste gespeichert werden muss…
~/Library/Preferences/developername/appname/
Thalia
grg
Thalia
Thalia
grg
Wowfunhappy
/Applications
, dass die App in oder existieren wird~/Applications
! Benutzer können sich dafür entscheiden, bestimmte Apps aus organisatorischen Gründen zu behalten oder an einen anderen Ort zu verschieben. Die App sollte unabhängig von ihrem Standort funktionieren, es sei denn, Sie haben einen sehr guten Grund, dies nicht zuzulassen (in diesem Fall möchten Sie dennoch den Standort überprüfen und den Benutzer benachrichtigen).Wowfunhappy
~/Library/Preferences
; Wenn dies nicht der Fall ist, kopieren Sie die Standarddatei aus Ihrem App-Bundle in~/Library/Preferences
.djvg
djvg