Gate Keeper utiliza la funcionalidad de cuarentena que ha estado presente durante un tiempo para molestar a los usuarios después de que descargan archivos.
Puede examinar la información de cuarentena de un archivo leyendo su com.apple.quarantine
atributo extendido . Aquí hago esto para un lanzamiento nunca antes .app
copiado de un descargado .dmg
:
$ xattr -l Butler.app/
com.apple.quarantine: 0002;50697c0e;Safari;942183F8-A268-447B-AEAB-55CEA27DD911
El primer valor es el estado de cuarentena (es decir, la parte interesante). Le sigue una marca de tiempo Unix codificada en hexadecimal (en este caso: date -r 0x50697c0e
resultados Mo 1 Okt 2012 13:18:38 CEST
), el nombre de la aplicación que crea el archivo y un identificador único (UUID) del elemento original en cuarentena. Este último es heredado por los archivos extraídos de su contenedor, en este caso, el .dmg
archivo.
La primera parte del atributo extendido es el estado de cuarentena. Cuando se descarga y nunca se abre, este archivo tiene 0002
, posiblemente indicando una descarga web .
Cuando hace doble clic en la aplicación, pero cancela cuando se le solicita confirmación, es 0022
(probablemente para registrar una ejecución anterior sin aprobación), y cuando confirma la ejecución una vez, es 0062
. En ese caso, no se te volverá a preguntar después. Esto se parece mucho a una representación octal o hexadecimal de un campo de bit, con el tercer 4
bit de valor indicando aprobación, y el tercer 2
bit de valor indicando ejecución previa.
Al restablecer este valor al estado original después de la descarga, puede volver a habilitar la protección de Gate Keeper . Simplemente lea el valor después de abrir ( xattr -p com.apple.quarantine <filename>
) y reemplácelo con el mismo valor, sin los bits "esto ya fue aprobado" (por ejemplo xattr -w com.apple.quarantine 0002;[rest of the previous value] <filename>
).
wget
y evite el problema. Si bien no lo probé, dudo que Xcode establezca información de cuarentena.