NotarizeDMG es una aplicación para macOS, creada con SwiftUI, que firma y notariza con Apple una imagen DMG firmada o sin firmar, todo desde una sola ventana. En el modo Crear y notarizar DMG, prefiere create-dmg cuando está disponible y recurre a un flujo integrado con AppleScript + Finder cuando no lo está.

Características
- Dos modos:
- Notarizar DMG — firma y notariza un archivo .dmg existente.
- Crear y Notarizar DMG — crea un archivo DMG a partir de una .app, y luego lo firma y notariza usando create-dmg si está instalado o AppleScript + Finder como alternativa
- Arrastrar y soltar: Arrastra una .dmg o .app a la ventana, o usa Examinar… para buscar
- Carpeta de salida: En el modo Crear y Notarizar DMG, elige la carpeta donde se guardará la DMG resultante; la elección se guarda entre sesiones
- Acción en un clic: Notarize ejecuta codesign, xcrun notarytool submit –wait y xcrun stapler staple en secuencia (precedidos por create-dmg o por el flujo interno basado en AppleScript en el modo Crear y Notarizar DMG)
- Cancelar: Detiene una operación en curso en cualquier momento con el botón Cancelar
- Registro en tiempo real: La salida de los comandos se muestra en un área de registro, con botones Copiar y Limpiar
- Credenciales seguras: Apple ID, Team ID, la identidad de firma y la contraseña específica de la aplicación se almacenan como un único elemento JSON en el Llavero del sistema, nunca en texto plano
- Panel de ajustes: Se abre con el botón Ajustes… o con ⌘,
- Panel de ayuda: Ayuda integrada sobre ambas rutas de creación de DMG y la instalación de create-dmg, accesible con el botón ?
- Sistema de idiomas: Inglés (predeterminado), español, francés, alemán e italiano. Cámbialo desde el menú Idioma (⌘L)
Nota: en el modo Crear y Notarizar DMG, hasta que no eliges una carpeta de destino, el botón Crear y Notarizar permanece deshabilitado.
Captura de pantalla

Complemento
NotarizeDMG requiere un archivo DMG (firmado digitalmente o no) como fuente. Esta DMG contiene una aplicación macOS firmada digitalmente con un Developer ID de Apple. Hay varias formas de crear la imagen DMG, incluidas las herramientas integradas de macOS, pero cuando se abre la DMG en el Finder, el diseño es muy básico, con una ventana grande e iconos pequeños.
Para crear fácilmente una imagen DMG con un aspecto elegante, me gusta mucho la herramienta gratuita de línea de comandos create-dmg de Sindresorhus.
NotarizeDMG añade integración con create-dmg mediante un modo Crear y notarizar DMG que delega la creación de la DMG en el CLI create-dmg ya instalado por el usuario cuando está disponible y, en caso contrario, recurre a un flujo integrado con AppleScript + Finder.
Muchos proyectos utilizan AppleScript para generar imágenes DMG con ventanas del Finder personalizadas, pero tiene algunas desventajas:
- No siempre funciona bien en todas las versiones de macOS
- AppleScript requiere que el usuario conceda permisos en Privacidad y Seguridad → Automatización
- Aplicar el diseño a la ventana del DMG es bastante lento.
Cuando create-dmg está instalado, NotarizeDMG usa esa ruta más rápida y evita por completo el permiso de Automatización de Finder. Cuando no lo está, la app sigue funcionando mediante la alternativa integrada con AppleScript, aunque macOS puede solicitar permiso de Automatización para Finder.
El requisito previo para tener create-dmg es tener instalado Node.js 20 o posterior. Una forma de instalar Node es a través del gestor de paquetes Homebrew. Aunque esto es un paso adicional en comparación con instalar Node directamente desde su propio instalador, puede ayudarte a evitar errores de permisos y otros problemas.
1.- Instalar homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2.- Instalar Node-js:
brew install node
3.- Instalar create-dmg:
npm install --global create-dmg
# Opcional: si recibes un aviso sobre
allow-scripts=fs-xattr,macos-alias
# ejecuta este comando
npm config set allow-scripts=fs-xattr,macos-alias --location=user
create-dmg estará disponible en /usr/local/bin/create-dmg (Mac Intel) o en /opt/homebrew/bin/create-dmg (Mac Silicon). Como beneficio adicional, la imagen DMG se firma digitalmente si no lo estaba previamente.
La imagen DMG creada tiene un diseño elegante y el proceso es muy rápido:
- Dos iconos: la aplicación y el enlace a Aplicaciones
- Iconos de gran tamaño
- Fondo con indicación de arrastrar la aplicación al enlace de Aplicaciones
- Tamaño de ventana ajustado al fondo
- El icono de disco cuando la imagen está abierta presenta el icono de la aplicación integrado.


Notas
- Prueba la aplicación «tal cual», sin instalar create-dmg. Si obtienes archivos DMG con un diseño atractivo de la ventana del Finder, quédate con esa opción. Si las DMG presentan el diseño básico y poco estético típico de las DMG estándar, instala create-dmg: el proceso de creación de la DMG es considerablemente más rápido, no necesitas conceder permisos de automatización y las imágenes DMG siempre presentan un diseño de ventana del Finder mejorado.
- La primera vez que ejecutes la aplicación en modo AppleScript, aparecerá un aviso informando al usuario de que «DMGBuildNotarize utiliza la automatización del Finder para crear diseños personalizados de ventanas de instalación» y solicitando permiso para que DMGBuildNotarize envíe eventos Apple (Apple Events) al Finder. Debes conceder este permiso para que la DMG se cree correctamente. Esto no es necesario si la DMG se crea en modo create-dmg.
- ¿Por qué es diferente el fondo de la ventana del Finder de la DMG?
- AppleScript: el fondo de la ventana se genera mediante código; lo que ves es el resultado de ajustes basados en prueba y error hasta encontrar uno válido.
- create-dmg: el fondo está integrado como imagen dentro de la herramienta; dado que create-dmg se utiliza en muchos proyectos diferentes, preferí mantener el fondo original tal y como lo implementó su creador, sindresorhus.
Ajustes
La ventana de configuración agrupa los siguientes ajustes en un solo lugar:
- Firma de código y cuenta de Apple Developer
- Opción para eliminar los archivos DMG tras la cancelación
- La ventana de selección de idioma permanece como un ajuste independiente.
Requisitos
- macOS 14 Sonoma o posterior
- Xcode 15 o posterior
- Una cuenta de Apple Developer con un certificado Developer ID Application
- Una contraseña específica de aplicación generada en appleid.apple.com
Notas de seguridad
- El proyecto no incorpora App Sandbox (com.apple.security.app-sandbox = false). Esto es necesario para que la aplicación pueda invocar codesign, xcrun y create-dmg como procesos hijos.
- Las cuatro credenciales se almacenan como un único elemento JSON en el Llavero del sistema bajo el nombre de servicio perez987.notarizedmg. Nunca se escriben en disco en texto plano.
- El campo de contraseña de la aplicación usa SecureField y nunca se registra en el log.
