mac instalar imagen crear convertir archivos archivo app abrir cocoa deployment distribution diskimage

cocoa - instalar - Crear archivo DMG



dmg extractor (8)

El Dr. Nic armó una bonita gema rubí que hace la mayor parte de este trabajo por ti, solo necesitas proporcionar el proyecto xcode y algunos gráficos. El enlace está aquí:

http://drnicwilliams.com/2009/02/03/choctop-packaging-and-deployment-of-cocoa-applications/

Es un gran paquete, se ocupa de tareas que de otro modo serían un dolor ...

- Evan

Esta pregunta ya tiene una respuesta aquí:

Estoy desarrollando una aplicación en Cocoa. Necesito crear un archivo DMG para instalar mi aplicación como Adium (que proporciona una interfaz de usuario agradable para arrastrar el archivo de la aplicación a la carpeta de la aplicación). ¿Hay alguna herramienta para esto?


La mejor manera de hacerlo como un paso de compilación automático es crear un template.dmg que se vea exactamente como lo desee (usando finder / diskutility, etc., pero sin hacer el último paso de comprimirlo), luego en su script de compilación:

  1. Use hdiutil para adjuntar la imagen
  2. Use cp, etc. para copiar la aplicación en la imagen montada
  3. hdiutil separar
  4. comprimir la imagen: hdiutil convertir "in.dmg" -quiet -format UDZO -imagekey zlib-level = 9 -o "MyApp-0.3.dmg"

Hay un archivo MAKE en https://github.com/remko/fancy-dmg/ que contiene estos pasos.


MacBreak Dev hizo un pequeño screencast agradable sobre la creación de archivos DMG utilizando un flujo de trabajo de Automator. Hace las cosas muy fáciles, muy rápidas y puede tener un fondo personalizado para su DMG. Puedes verlo en: http://www.pixelcorps.tv/mbkd_010


Puede usar DropDMG para configurar un diseño con una imagen de fondo, un enlace simbólico a la carpeta Aplicaciones, las posiciones de sus iconos, etc. Luego, cuando necesite crear su archivo .dmg, puede simplemente arrastrar la aplicación a DropDMG (o script a través de AppleScript o la herramienta de línea de comandos dropdmg) y hacer que construya la imagen del disco en un solo paso.


Si tiene un único archivo que el usuario probablemente copiará en el directorio de aplicaciones, una imagen de disco "habilitada para Internet" es una buena alternativa. Cuando descargas uno con Safari (lo sé, no todos usan Safari), lo monta automáticamente, copia el contenido en la ubicación de descarga, luego desmonta el DMG y lo mueve a la papelera. La aplicación no va automáticamente a Aplicaciones, sino que está en HD del usuario y no tienen que preocuparse por manipular la imagen del disco.

Las imágenes de disco pueden conectarse a Internet con un solo comando de Terminal:

hdiutil internet-enable -yes "MyDiskImage.dmg"

Esto debería funcionar en cualquier archivo DMG. Si desea que los usuarios vean sus bonitos antecedentes, es posible que no desee hacer esto. Sin embargo, para cargas simples, es una buena forma de hacerlo. (Por supuesto, algunas personas preferirían crear un archivo ZIP para este tipo de implementación, de todos modos).

Encuentro que crear manualmente un DMG puede ser un problema. En realidad, puedes automatizar la creación de un DMG simple en tu proyecto de Xcode. Simplemente cree un destino de script de shell (proyecto → nuevo objetivo ...) y use hdiutil en el script. El comando se vería así (sustituyendo los nombres y directorios propios):

hdiutil create -fs HFS+ -volname "MyApp 1.0" -srcfolder / "/directory/with/contents/to/package/" "~/Desktop/MyApp-1.0.dmg"`

Tendrá que incluir todo lo que desea incluir en la imagen del disco en un único directorio, pero si no tiene miedo de usar cp en Terminal, es fácil hacerlo.

Si desea ver un ejemplo, uso este enfoque en CHDataStructures.framework . Si revisa el código y abre en Xcode, el segundo script en el destino de Implementación crea el DMG.


Y porque ya no hay suficientes respuestas ...

Creé un DMG de lectura-escritura con el diseño que quería: imagen de fondo, tamaño, acceso directo al icono de la aplicación y una carpeta vacía para sustituir a mi aplicación. Escribí un script bash simple para hacer una copia de este DMG, montarlo, copiar mi aplicación sobre la carpeta vacía, desmontar el DMG y luego convertirlo a solo lectura.

Pero DMG Canvas puede hacer todo este proceso por usted, y también proporciona una herramienta de línea de comandos que puede usar para automatizar este proceso a partir de sus compilaciones de Xcode, por lo que realmente recomendaría eso sobre mi solución.


Los scripts de compilación de Mozilla son una gran fuente si desea escribir su propio script. Usando pkg-dmg puedes personalizar la imagen de fondo, el nombre del volumen, agregar una licencia, un ícono, etc. Ejemplo:

pkg-dmg / --verbosity 2 / --volname "MegaFinder" / --source MegaFinder.app / --sourcefile / --target MegaFinder.dmg / --license Licence.txt / --icon MegaFinderVolumenIcon.icns / --copy MegaFinderCustomizedDS_Store:.DS_Store / --mkdir .background / --copy MegaFinderBackgroundImage.jpg:.background/backgroundImage.jpg / --symlink /Applications:Applications / --attribute V:.background / 2>&1 > /dev/null

El problema es crear el .DS_Store perfecto. Para casos simples, puede crear .DS_Store personalizando el volumen dmg montado en Finder (Mostrar opciones de .DS_Store ). Tendrá que crear una imagen editable, personalizarla, desmontarla (para confirmar los cambios) y finalmente volver a montarla para copiar la .DS_Store resultante como MegaFinderCustomizedDS_Store (como aparece en el ejemplo anterior)

Si su aplicación es compatible con Leopard, recomiendo DMG Canvas para administrar todo el proceso o al menos para obtener .DS_Store . También tiene una herramienta de línea de comandos.


Utilidad de disco (Está en Aplicaciones / Utilidades)

Vaya a File > New > Disk Image From Folder , luego seleccione la carpeta de la que desea crear una imagen. El archivo .dmg resultante replicará la carpeta que utilizó para crear la imagen, hasta las posiciones de los iconos.