La aplicación no se puede abrir porque es de un desarrollador no identificado


9

Pregunta:

Tenga en cuenta antes de leer esto que: "Dígales que vayan a System preferences > Security & privacyy allow 3rd party applications to run. No es una solución aceptable para este problema.

He creado un .appThat que ha sido firmado con un certificado válido de desarrollador de Mac. Sin embargo, descargarlo de Internet y ejecutarlo aún arroja el mensaje de seguridad:

La aplicación no se puede abrir porque es de un desarrollador no identificado

Este es el codesign -vvvvolcado de terminal para .app:

Executable=/Users/me/Desktop/ADRA.app/Contents/MacOS/ADRA
Identifier=unity.Company.ADRA NSW 2016
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178145 flags=0x0(none) hashes=5561+3 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=79ecf88721d6387749c1f6b10355c3683ef20eb2
CandidateCDHash sha256=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Hash choices=sha1,sha256
CDHash=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Signature size=4739
Authority=3rd Party Mac Developer Application: Company Pty Ltd (NH73TNDB28)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=20 Apr 2017, 2:46:12 PM
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=224

No entiendo por qué esto no pasa Gatekeeper? ¿Hay algo que falta? ¿Apple requiere algo más?


Actualización 1:

@TheDarkKnight ha sugerido que estoy usando el certificado incorrecto para firmar el .app. Parece que son correctos, así que fui a crear uno nuevo, Developer ID Application certificatepero aparentemente porque no soy un 'Agente' en la cuenta grupal, así que ahora tengo que esperar hasta que el 'Agente' me cree uno, parece estar al revés, ¿está ahí? ¿No hay otra forma de esperar que el 'Agente' haga esto por mí?

(en Xcode) Si el botón de opción "ID del desarrollador" está atenuado, probablemente tenga una cuenta grupal. Estos tipos de cuentas solo permiten que el rol de "Agente" cree ID de desarrollador. Póngase en contacto con la persona que creó la cuenta de desarrollador de Apple de su grupo si se queda atascado aquí.

https://developer.mozilla.org/en-US/docs/Mozilla/Signing_Mozilla_apps_for_Mac_OS_X


Actualización 2:

Así que finalmente obtuve mi nuevo certificado hoy, lo volví a firmar .app, lo descargué del servidor y TODAVÍA RECIBÍ EL MENSAJE DE ERROR . La autoridad parece ser correcta ahora:

Executable=/Users/me/Downloads/ADRA.app/Contents/MacOS/ADRA
Identifier=com.company.adra
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178133 flags=0x0(none) hashes=5561+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
OSPlatform=36
OSSDKVersion=657408
OSVersionMin=656896
Hash type=sha256 size=32
CandidateCDHash sha1=90d2a54162d6d018bf4f7602d7707c8e8e522fc6
CandidateCDHash sha256=dadfe5203d1367ea776f9501025dbd4ce751ee30
Hash choices=sha1,sha256
Page size=4096
CDHash=dadfe5203d1367ea776f9501025dbd4ce751ee30
Signature size=8930
Authority=Developer ID Application: Company Pty Ltd (NH73TNDB28)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=10 May 2017, 3:36:51 pm
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=184

Solo estoy firmando. .app¿Hay algo más que deba hacer para que esto funcione? ¿Hay un período de tiempo que tenga que esperar antes de que esto funcione?


Actualización 3:

Ahora, casi 1 mes después de la Actualización 2, este problema sigue siendo aparente, por lo que hemos otorgado una recompensa.


1
¿La aplicación está incrustada en una imagen de disco firmada con código DMGcuando se descarga? ¿En qué versión de macOS estás probando?
Graham Miln

@GrahamMiln Tendré que contactarte con la versión de macOS. No firmé el .dmg, ¿tienes que firmar eso también? Estaba usando Successsoftware.net/2012/08/30/… como referencia y afirman que .dmgno requiere firma adicional, por lo que no lo firmé.
Zze


Intente probar la firma con:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Graham Miln

@GrahamMiln Gracias por los comentarios, me pondré en contacto con usted por la mañana.
Zze

Respuestas:


7

En términos generales, cuando distribuye aplicaciones fuera de la Mac App Store, necesita:

  1. Establezca la identidad de firma en ID de desarrollador
  2. Crea tus certificados de ID de desarrollador
  3. Crea tu aplicación Archivo
  4. Valida tu aplicación
  5. Exportar una aplicación firmada de ID de desarrollador
  6. Firme el paquete del instalador (no aplicable en su caso)
  7. Pruebe el comportamiento de la aplicación con Gatekeeper habilitado y nuevamente con Gatekeeper deshabilitado

Resolver problemas como este puede ser complicado porque es fácil hacer suposiciones acerca de cuánto sabe el OP (en este caso, usted), etc. Al leer su pregunta, voy a asumir que los primeros tres pasos se han solucionado.

Entonces, comencemos por verificar cómo está validando su aplicación.

Valida tu aplicación

Para validar una aplicación firmada por ID de desarrollador, siga estos pasos:

  1. En Xcode, vaya a Producto> Archivo
  2. Aparecerá la ventana del organizador de archivos
  3. Seleccione el archivo para la aplicación en cuestión
  4. Haga clic en el Validatebotón
  5. Aparece un cuadro de diálogo pidiéndole que seleccione un método para la validación.
  6. Seleccione la opción Validar una aplicación firmada por ID de desarrollador
  7. Haga clic en Next
  8. En la siguiente ventana, seleccione un equipo del menú emergente
  9. Haga clic en Choose
  10. Haga clic en el Validatebotón

Esto identificará cualquier problema de validación. Si se encuentra alguno, este será su problema (o al menos parte de él), por lo que deberá resolverlo.

Si no se encuentran problemas, proceda a continuación.

Exportar una aplicación firmada por ID de desarrollador

  1. Aún dentro de la ventana del organizador de Archivos, seleccione el archivo para la aplicación en cuestión
  2. Haga clic en el Exportbotón
  3. Aparece un cuadro de diálogo pidiéndole que seleccione un método para exportar
  4. Seleccione la opción Exportar una aplicación firmada por ID de desarrollador
  5. Haga clic en Next
  6. En la siguiente ventana, seleccione un equipo del menú emergente
  7. Haga clic en Choose
  8. Haga clic en el Exportbotón

Una vez que se exporta su aplicación, debe probar con Gatekeeper habilitado y nuevamente con Gatekeeper deshabilitado.


Gracias por la respuesta, intentaré esto lo antes posible.
Zze
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.