Ubicaciones de carpeta para la aplicación macOS

3

Estoy portando una aplicación de Windows y Linux a macOS.

La aplicación está escrita en Qt. Tiene algunos dylib dependientes (algunos construidos, otros sdk). Las mismas bibliotecas exactas y la misma versión de Qt se utilizan para algunas otras aplicaciones (que aún no están listas para ser portadas). No se distribuirá a través de la App Store.

La aplicación puede leer, escribir, arrastrar y soltar, imprimir archivos de usuario de tipo personalizado. Utiliza una base de datos sqlite3, siempre que los usuarios puedan navegar a su ubicación (ya que también deben tener la capacidad de usar una base de datos desde una ubicación diferente). Durante la impresión, sería mejor utilizar la carpeta temporal de cups para guardar archivos de mapa de bits temporales.

He intentado descubrir la mejor manera de instalar este tipo de aplicación. ¿Es el paquete adecuado para este tipo de aplicación, o debo usar el sistema de archivos para colocar todos los archivos requeridos en las ubicaciones más probables?

  1. Creando un paquete hasta ahora, tengo las dependencias (incluyendo Qt frameworks) dentro del directorio Contents / Frameworks.

    • ¿Dónde colocaría los archivos creados por el usuario ... dentro del paquete o dentro del directorio Users/MyCompany/MyProgram ? Intenté guardar dentro ... no puedo navegar dentro de MyApp.app desde dentro del programa.
    • ¿Dónde colocaría la base de datos sqlite3? Si lo coloco dentro del paquete (por ejemplo, Contents/Resources ), no puedo acceder a él desde dentro del programa.
    • ¿Dónde se instalaría todo el paquete? en /Applications/MyCompany/MyProduct es mi conjetura?
  2. Sin un paquete: por lo que leí, las siguientes ubicaciones pueden ser buenas:

    • Para el ejecutable: /Applications como arriba?
    • Para las bibliotecas dependientes: usr/share/MyCompany/MyProduct o /Library/MyCompany/MyProduct ?
    • archivos de usuario obviamente Users/MyCompany/MyProgram
    • Base de datos de recursos? No tengo idea de que Un buen lugar es, accesible a todos los usuarios, dónde guardar dicho archivo.
    • Esta configuración permitiría que otras aplicaciones se instalen y usen el mismo framework Qt y dylibs dependientes ... Pero leí algo sobre ¿Las aplicaciones no funcionan si se modifican las dylibs?

¿Cuál es la mejor manera y, en ese caso, cuáles son las mejores ubicaciones de carpetas?

¿Debo suponer que la instalación se realiza con derechos de sudo? ¿Se puede realizar la instalación sin derechos de administrador?

    
pregunta Thalia 29.10.2014 - 18:07

1 respuesta

1

El paquete de aplicaciones debe ir en / Aplicaciones. Este paquete de aplicaciones debe contener todo . Bibliotecas, dependencias, todo lo que la aplicación necesita para ejecutar, de modo que si el paquete de la aplicación se copia en el directorio / Aplicaciones de otra máquina, debería poder ejecutarse.

La instalación en / Aplicaciones requiere administración. Si el administrador no está disponible, la ubicación estándar para una aplicación de usuario único es ~ / Aplicaciones. No se debe esperar que este directorio exista.

Si es necesario 'instalar' algo en el sistema para la aplicación, como la 'base de datos de recursos' mencionada anteriormente, la aplicación debe solicitar que se instale en:

/Library/Application Support/developername/appname/

En caso de que haya que 'instalar' algo para el usuario actual, debe ir en la misma ruta prefijada con su directorio de inicio. Esto no requiere administración.

~/Library/Application Support/developername/appname/

Los archivos de usuario no deben guardados en la raíz del directorio de inicio del usuario. El usuario debe tener la oportunidad de guardar archivos donde quiera, preferiblemente con un cuadro de diálogo estándar de OS X para guardar.

También ...

  • Los archivos de caché deben ir en:

    ~/Library/Caches/developername/appname/
    
  • Las preferencias de los usuarios deben ir en:

    ~/Library/Preferences/com.bundleidentifier.plist
    

    Si es necesario guardar algo más que una sola lista de propiedades ...

    ~/Library/Preferences/developername/appname/
    
respondido por el grg 29.10.2014 - 18:14

Lea otras preguntas en las etiquetas