0 votos

¿Gatekeeper pasa argumentos extraños en el primer lanzamiento después de la descarga?

Mantengo una aplicación para MacOS. Algunos usuarios (pero no todos) informan de un problema (sospecho que los que ejecutan Catalina), en el que la primera vez que se lanza la aplicación, se bloquea. Todos los lanzamientos futuros funcionan bien.

He conseguido reproducir esto, y se bloquea en el código de análisis de argumentos. Mi sospecha es que Gatekeeper está pasando algún argumento inusual en el primer lanzamiento (el que muestra el diálogo 'esta es una aplicación descargada de foo.com').

El código de análisis de argumentos es bastante robusto: ya rechaza los argumentos falsos, así que debe haber algo muy inusual que se pasa. El problema es que mis compilaciones locales no muestran el problema, y no sé cómo restablecer la bandera de cuarentena para activar el fallo de nuevo. (También, por supuesto, los fallos son en builds de lanzamiento, por lo que el rastreo de fallos no me da una ubicación exacta)

Si pudiera activar la advertencia de cuarentena artificialmente, marcando una compilación de depuración local como "recién descargada", sospecho que esto sería trivial de depurar.

1voto

pauldoo Puntos 366

Bien, encontré una manera de probar esto en una compilación de depuración, y lo resolví. Mi solución fue copiar el xattr de com.apple.quarantine en el binario de depuración que crea XCode, y luego probarlo a través de 'open'. (El lanzamiento a través de la Terminal nunca mostró el problema)

Esto revela que cuando se lanza con la bandera de cuarentena establecida, la línea de comandos contiene un "NULL" como segundo arg; es decir, argc=2, argv[0]=, argv[1]=0

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