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

4

Agregar archivos a un dmg y redistribuirlo

Propósito:

Adición de algunos archivos de configuración a firefox.dmg (mozilla.cfg y policy.json) en 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)
  • Montar y agregar archivos al dmg descomprimido
  • Opcional (vuelva a comprimir el dmg con las mismas herramientas utilizadas para descomprimir)

Problema:

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

Lo que se probó:

  • La eliminación del atributo com.apple.quarantine con el comando xattr -c funciona pero no es una solución confiable
  • Se intentó eliminar los directorios _CodeSignature de la dmg sin éxito
  • Crear un nuevo dmg que contenga archivos del anterior sin éxito
  • Intenté editar Info.plist sin éxito

Pregunta:

¿Cómo hacer que el nuevo paquete dmg sea utilizable en otras máquinas? (Cómo evitar el error del controlador de acceso sin utilizar xattr -c )

    
pregunta intika 26.11.2018 - 18:30

2 respuestas

4

Firma de código DMG de Apple:

La aplicación de firma de Apple requiere el pago del programa de desarrollo de Apple (99 $), se puede hacer libremente pero con un propósito limitado.

La firma dmg se puede hacer de dos maneras:

  • Firmando el propio archivo dmg

  • Firmando el directorio Application.app dentro de la imagen dmg

Edición de archivos DMG firmados:

Aquí hay 3 formas posibles de editar aplicaciones firmadas:

  1. Renunciar a la aplicación después de la edición

  2. Elimine la firma por completo y edite la aplicación (la aplicación seguirá siendo instalable y se avisará al usuario)

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

Verificación de firma:

Según la situación, se requieren uno o ambos comandos

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

Eliminando la firma de la aplicación

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

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

Explicando el error:

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 los directorios _CodeSignature no es suficiente para deshacerse de la firma; codesign --remove-signature también debe ejecutarse en el paquete / aplicación / binario

Conferencia relacionada:

Create dmg - Create dmg from directory - Agregar firma a dmg - Eliminar firma - Aplicación dañada - Cómo codificar el signo - Free developer - Firma gratuita

    
respondido por el intika 27.11.2018 - 04:25
2

No puede modificar el DMG y aún pasarlo por GateKeeper sin volver a firmarlo. ¡Esta es básicamente la razón completa para tener la firma del código!

Básicamente tienes tres opciones:

1) Elimine la firma del código anterior y vuelva a firmar el DMG con su propia firma. Esto requiere que se inscriba en el Programa para desarrolladores de Apple.

2) Distribuya el DMG original, sin modificar, y acompáñelo con sus propias modificaciones. Esto podría hacerse como instrucciones para el usuario sobre qué copiar, o podría ser en forma de un script automático.

3) Elimine las firmas completamente (tanto del DMG como de la aplicación). Luego, el usuario debe tener configurado GateKeeper para permitir la apertura de aplicaciones no firmadas (es decir, se le solicitará al usuario la primera vez que se abra).

    
respondido por el jksoegaard 26.11.2018 - 23:19

Lea otras preguntas en las etiquetas