2011-08-10 19 views
29

Sé que en las ventanas, hay un montón de herramientas del instalador puede utilizar para crear un instalador, pero en Mac OS que he visto dos formas de instalar aplicaciones:¿Cómo paquete una aplicación Mac OS para la instalación?

  1. Un archivo DMG que se descargan, dobles -click, luego ejecute una aplicación adentro: la aplicación generalmente hace que arrastre un icono a otro icono (que representa la carpeta Aplicaciones) para instalar la aplicación

  2. Otro tipo de archivo que inicia un instalador aparentemente estándar, que a veces aparece una advertencia como "Este instalador puede ejecutar un programa para determinar si puede continuar con la instalación"

¿Cuál es la forma "estándar" de empaquetar una aplicación para instalar en Mac OS? ¿Es uno de los anteriores la forma recomendada por Apple?

Gracias.

+1

pregunta novato, pero ¿por qué no podemos distribuir el archivo .app por sí mismo y que el usuario copiarlo en la carpeta de aplicaciones, en lugar de crear un archivo DMG? –

+2

Porque un .app no ​​es un archivo. Solo se ve como un "archivo" para el usuario, pero en realidad es un "paquete". Un directorio especialmente estructurado, marcado para que el usuario lo vea, y arrástrelo como si fuera solo un archivo.Los "paquetes" son algo muy "Mac", y no viajan bien por correo electrónico o descargas, y especialmente no en discos formateados en Windows. Sin embargo, los archivos DMG (Imagen de disco) son solo "Secuencia de bytes" en el disco, que se pueden transferir fácilmente. –

+1

@MottiShneor, ¿no es esto para lo que son los archivos .zip? ;) –

Respuesta

13

Apple está haciendo claramente el "estándar" para descargar un programa de la App Store. Esto tiene el beneficio de hacer que la instalación de la aplicación sea transparente para el usuario normal. Y créanlo o no, la gente normal tiene muchos problemas con el concepto de instalar un programa. Por supuesto, ese beneficio conlleva algunos costos, pero este no es el lugar para ese debate; hay muchos otros lugares para eso.

Suponiendo que no quiere o no puede ir a la ruta de la App Store, tanto PKG como DMG son formas comunes de distribuir un programa. Use una PKG si necesita instalar archivos aparte de su paquete de aplicaciones (que no debería ser un caso de uso común). En todos los demás casos, use un DMG que solicite al usuario copiar la aplicación en la carpeta Aplicaciones. Pero muchos de sus usuarios no entenderán que necesitan hacer eso (a menos que su audiencia objetivo sea únicamente usuarios informáticos con conocimiento). Ellos ejecutarán su aplicación desde la imagen del disco. Idealmente, en este caso, su programa detectará que se está ejecutando desde una imagen de disco y se ofrecerá para copiarse en la carpeta Aplicaciones.

+2

Lo que hace Apple es hacer que las cosas sean consistentes. Eso es extremadamente bueno para los usuarios finales. –

+0

Gran respuesta. Se apreciarán algunos enlaces a intros para los 3 métodos principales. Comience con https://developer.apple.com/osx/distribution/ –

+0

¿Podría explicarnos un poco sobre cómo puede un programa decir que se ejecuta desde un DMG? (¿Qué API de Cocoa/Other usar?) Además, ¿cómo puede un programa copiarse a la carpeta Aplicaciones? Esto requiere autenticación/autorización, ¿no? ¿Hay un código de muestra para esta técnica? –

3

En OS X, muchas aplicaciones se acaba de crear como un reubicables paquetes de aplicación que el usuario sólo tiene que copiar a la carpeta /Aplicación (o cualquier otro lugar). En otros casos, cuando necesita realizar algunas operaciones en la máquina (como agregar usuarios o cambiar permisos) puede usar un instalador PKG (por ejemplo, construido usando PackageMaker), que permite ejecutar algunos scripts previos y posteriores a la instalación y admite algunos configuración básica de instalación , como la selección de la unidad de instalación.

A veces, como con software de servidor complejo, se necesita más flexibilidad, por ejemplo para mostrar las páginas personalizadas a la información que solicita el usuario final requerida para instalar la aplicación , al igual que el puerto de MySQL y la contraseña o información de proxy para requisitos de descarga sobre la marcha (o simplemente para que se vea más elegante :)). Para estos casos, existen otras soluciones de instalación como nuestra BitRock InstallBuilder (descargo de responsabilidad, soy uno de los desarrolladores). InstallBuilder también tiene la ventaja de generar instaladores multiplataforma utilizando el mismo proyecto con muy poca personalización por plataforma .

7

estamos hablando de dos cosas:

  • primera y más importante aún, el método estándar por el cual los bits de un archivo ejecutable echar un polvo en el disco de una manera que sea accesible y debidamente registrada por el sistema
  • segundos, el mecanismo para la preparación de la .app, según lo recomendado por Apple

Una página más antigua de marketing en Apple's site dice que es recomendado para crear paquetes (por lo que la aplicación de instalación puede mover los bits en su lugar) con el Packag aplicación eMaker. Su uso se describe aquí: mactech.com/articles/mactech/Vol.25/25.03/2503MacEnterprise-PackagingforSystemAdministrators/index.html.

Pero como han mencionado otros, el elefante en la habitación es MacAppStore (MAS). Hasta su debut, lo que era estándar para las grandes compañías eran sus propias secuencias de comandos personalizadas en un paquete 'paquete' de estilo antiguo o el uso de un ejecutable como el instalador VISE. Los desarrolladores más pequeños generalmente intentan hacer que su aplicación se instale a través de arrastrar y soltar, distribuida en archivos comprimidos o imágenes de disco (por razones de simplicidad). El MAS es diferente: a partir de 10.7 utiliza un formato de paquete (que debutó en 10.5) denominado paquete plano (realmente un archivo xar, explicación here) que se transfiere a una carpeta oculta a través de http, se instala directamente en Aplicaciones (después de lo cual se elimina la carpeta temporal en la que se descarga). Se deja caer su recepción y un proyecto de ley o material de archivo en// var/db privado, y por tanto es capaz de auditoría por la incorporada en la línea de comandos pkgutil herramienta, que se describe aquí: mactech.com/articles/mactech/Vol.25/25.12 /2512MacEnterprise-PackagesReceiptsandSnow/index.html

Una de las ventajas del uso del formato de paquete plano es que puede extraer cosas de la red de forma más segura y eficiente, pero no es tan fácil trabajar con paquetes de paquete si está probando y modificar el paquete regularmente, o iterar para garantizar que los scripts que realizan acciones o verificaciones funcionen bien. Incluso cuando está plano, se recomienda colocar el paquete en un archivo o imagen de disco para mayor flexibilidad. Más herramientas de distribución esperan DMG que zip, por lo que también hay eso.

Además de lo que Apple recomienda y lo que es estándar, práctica común, hay este artículo: https://www.afp548.com/2010/06/03/the-commandments-of-packaging-in-os-x/ que analiza los por qué y cómo (aunque principalmente para los administradores del sistema) de envases para una distribución más amplia. Se recomienda mucho tener una idea más clara de cómo y por qué las cosas van mal y qué evitar.

+3

packagemaker está en desuso por bastante tiempo - en su lugar deberías crear paquetes usando la herramienta de línea de comandos pkgbuild. –

6

Probar Iceberg! Otro creador de paquetes.

12

Los paquetes funcionan bien. Si su proceso de implementación debe mantenerse simple, es genial.

El Quick build consiste en arrastrar su .app en y ya está.

Para envases avanzados, también puede proporcionar un certificado.

http://s.sudre.free.fr/Software/Packages/about.html

Cuestiones relacionadas