Pregunta:
Tenga en cuenta antes de leer esto que: "Dígales que vayan a System preferences > Security & privacy
y allow 3rd party applications to run
. No es una solución aceptable para este problema.
He creado un .app
That 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 -vvv
volcado 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 certificate
pero 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.
DMG
cuando se descarga? ¿En qué versión de macOS estás probando?.dmg
, ¿tienes que firmar eso también? Estaba usando Successsoftware.net/2012/08/30/… como referencia y afirman que.dmg
no requiere firma adicional, por lo que no lo firmé.spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Respuestas:
En términos generales, cuando distribuye aplicaciones fuera de la Mac App Store, necesita:
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:
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
Una vez que se exporta su aplicación, debe probar con Gatekeeper habilitado y nuevamente con Gatekeeper deshabilitado.
fuente