4 votos

¿Cómo hacer que un dmg modificado sea distribuible?

Añadir archivos a un dmg y redistribuirlo

Objetivo :

Añadir algunos archivos de configuración a firefox.dmg (mozilla.cfg y policies.json) con el objetivo de redistribuir el dmg modificado

Cómo se modifica el dmg :

  • Descomprimir el dmg con herramientas como (hdiutils/ultraiso/transmac/dropdmg/disk-utilities)
  • Montaje y adición de archivos al dmg descomprimido
  • Opcional (recomprimir el dmg con las mismas utilidades usadas para descomprimir)

Asunto :

Al abrir el nuevo dmg en una máquina diferente se obtiene el resultado "firefox" is damaged and can't be opened, you should move it to trash

Lo que se probó :

  • Eliminación de com.apple.quarantine con el comando xattr -c funciona pero no es una solución fiable
  • Trató de eliminar _CodeSignature directorios del dmg sin éxito
  • Crear un nuevo dmg que contenga archivos del anterior sin éxito
  • He intentado editar Info.plist sin éxito

Pregunta :

¿Cómo hacer que el nuevo paquete dmg se pueda utilizar en otras máquinas? (Cómo evitar el error del gatekeeper sin usar xattr -c )

0 votos

No sería más fácil crear un script que instale firefox entonces copia sobre los archivos modificados?

0 votos

¿Funciona la inserción de los archivos modificados en un DMG completamente nuevo? Puedes hacer un DMG de cualquier carpeta con la Utilidad de Discos.

0 votos

@Allan sí, pero su básicamente rodeando el problema porque el script necesitaría una firma ... pero podría ser una solución

4voto

jjungnickel Puntos 515

Firma de código DMG de Apple :

Firmar una aplicación de Apple requiere pagar el programa de desarrolladores de Apple (99$), se puede hacer libremente pero para un propósito limitado.

La firma de dmg se puede hacer de dos maneras :

  • Firma del propio archivo dmg

  • La firma de la Application.app dentro de la imagen dmg

Edición de archivos DMG firmados :

Aquí hay 3 formas posibles de editar aplicaciones firmadas:

  1. Renuncia a la solicitud después de la edición

  2. Eliminar la firma por completo y editar la aplicación (la aplicación seguirá siendo instalable el usuario será advertido)

  3. Eliminación de com.apple.quarantine con el comando xattr -c después de editar la aplicación

Verificación de la firma :

Dependiendo de la situación se requiere uno o ambos comandos

codesign -v Application.app
codesign -v Application.dmg

Eliminación de la firma de la aplicación

Después de extraer el dmg, etc. Dependiendo de la situación se requiere uno o ambos comandos

codesign --remove-signature Application.app
codesign --remove-signature Application.dmg

Explicación del fracaso :

El Application is damaged and can't be opened, you should move it to trash es el resultado de una eliminación parcial de la firma, porque la eliminación de _CodeSignature directorios no es suficiente para deshacerse de la firma; codesign --remove-signature debe ejecutarse también contra el paquete/aplicación/binario

Conferencia relacionada :

Crear dmg - Crear dmg desde el directorio - Añadir firma a dmg - Eliminar la firma - Aplicación dañada - Cómo codificar el cartel - Desarrollador libre - Firma libre

4voto

Jose Chavez Puntos 645

No se puede modificar la DMG y que siga pasando por GateKeeper sin volver a firmarla. Esta es básicamente la razón de tener la firma de código.

Básicamente tienes tres opciones:

1) Elimine la antigua firma del código y vuelva a firmar el DMG con su propia firma. Para ello es necesario estar inscrito en el Programa de Desarrolladores de Apple.

2) Distribuir la DMG original, sin modificar, y acompañarla de sus propias modificaciones. Esto podría hacerse como instrucciones para el usuario sobre lo que debe copiar, o podría ser en forma de un script automático.

3) Eliminar las firmas por completo (tanto del DMG como de la app). A continuación, el usuario debe tener GateKeeper configurado para permitir la apertura de aplicaciones no firmadas (es decir, el usuario será preguntado en la primera apertura).

0 votos

¿Los DMG sin firmar ya no están permitidos en los sistemas con Gatekeeper activado? Pensaba que sólo había que firmar las aplicaciones.

0 votos

Si el desarrollador firma el DMG, la aplicación puede utilizar los archivos de ese DMG. Si el desarrollador no firma el DMG, la aplicación no podrá acceder al contenido del DMG por medio de nombres de archivo relativos. Por lo tanto, si el programa está diseñado para ser instalado desde un DMG firmado donde utiliza los archivos del DMG, no funcionará si lo colocas en un DMG no firmado.

0 votos

Como la instalación de una aplicación no firmada sigue siendo posible al aceptar el diálogo 'desarrollador no identificado...' ¿cómo puedo eliminar la firma de firefox aparte de eliminar el directorio _CodeSignature o reconstruirlo? (no quiero publicarlo en la appstore sino sólo hacerlo utilizable al copiarlo en otras máquinas)

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