6 votos

Ubicaciones de carpetas para la aplicación MacOS

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

La aplicación está escrita en Qt. Tiene algunas dylib dependientes (algunas construidas, otras sdk). Las mismas librerías 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 - los usuarios deben ser capaces de navegar a su ubicación (ya que también deben tener la capacidad de utilizar una base de datos de una ubicación diferente). Durante la impresión, sería mejor utilizar la carpeta temporal de las tazas para guardar los archivos temporales de mapa de bits.

He intentado averiguar la mejor manera de instalar este tipo de aplicaciones. ¿Es el paquete adecuado para este tipo de aplicación, o debería utilizar el sistema de archivos para colocar todos los archivos necesarios en las ubicaciones más probables?

  1. Creando un bundle 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 bundle o dentro del Users/MyCompany/MyProgram ¿directorio? He intentado guardar dentro... no puedo navegar dentro de la MyApp.app desde dentro del programa.
    • ¿Dónde puedo colocar la base de datos sqlite3? Si la coloco dentro del bundle (por ejemplo Contents/Resources ), no puedo acceder a ella desde el programa.
    • ¿Dónde se instalaría todo el paquete? en /Applications/MyCompany/MyProduct es mi suposición?
  2. Sin un fardo: por lo que he leído, las siguientes pueden ser buenas ubicaciones:

    • Para el ejecutable: /Applications como en el caso anterior?
    • Para las liberaciones dependientes: usr/share/MyCompany/MyProduct o /Library/MyCompany/MyProduct ?
    • Archivos de usuario, obviamente Users/MyCompany/MyProgram
    • ¿Base de datos de recursos? No tengo ni idea de cuál es un buen lugar, accesible a todos los usuarios, donde guardar dicho archivo
    • Esta configuración permitiría instalar otras aplicaciones y utilizar el mismo framework Qt y dylibs dependientes... Pero he leído algo sobre que que las aplicaciones no funcionan si se modifican los dylibs?

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

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

4voto

siva Puntos 23

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

La instalación en /Applications requiere de un administrador. Si admin 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 mencionada "base de datos de recursos", la aplicación debería pedir que se instale:

/Library/Application Support/developername/appname/

Si hay que "instalar" algo para el usuario actual, debe ir en la misma ruta con el prefijo de su directorio personal. Esto no requiere de un administrador.

~/Library/Application Support/developername/appname/

Los archivos de los usuarios deben no se guardará en root del directorio personal del usuario. El usuario debe tener la oportunidad de guardar los archivos donde quiera, preferiblemente con un diálogo de guardado estándar de OS X.

Además

  • Los archivos de la caché deben ir dentro:

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

    ~/Library/Preferences/com.bundleidentifier.plist

    Si hay que guardar algo más que una sola lista de propiedades

    ~/Library/Preferences/developername/appname/

0 votos

¿Hay algo que tenga que hacer para instalar en /Applications? ¿O es ese el lugar por defecto donde se instala una aplicación? ¿Debo utilizar un gestor de paquetes para especificar la ubicación de destino?

1 votos

@Thalia La forma estándar en que un usuario instala una aplicación en OS X es descargando el paquete de aplicaciones y usando el Finder para copiarlo en /Aplicaciones, luego lo abren para usarlo.

0 votos

En Windows y Linux, la aplicación utiliza un archivo .ini para almacenar las preferencias del usuario (mucho más que las posiciones de Windows y las últimas ubicaciones de guardado... también las preferencias sobre las herramientas dentro de la aplicación). El .ini es un texto plano con pares clave-valor (no xml). ¿Podría utilizar el mismo archivo en lugar de un plist, y colocarlo en ~/Library/Preferences/com.bundleidentifier.settings o algo así?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X