¿Por qué OSX me dice que no puedo abrir un documento de un desarrollador no identificado?

16

Pensé que esta característica era solo para aplicaciones, no para documentos.

Este es un archivo de script C #, y le he dicho que lo abra con Visual Studio Code. Puedo abrir VS Code sin ningún problema, por lo que no parecen ser los permisos sobre eso.

ingrese la descripción de la imagen aquí

Almo
fuente

Respuestas:

25

Esta respuesta se aplica si configura la aplicación para ese documento en particular , no para todos los documentos de ese tipo (por ejemplo, utilizando Obtener información en el documento y cambiando el menú emergente "Abrir con", pero no haciendo clic en "Cambiar todo" botón).

Hay dos piezas críticas aquí. Primero, si configura un documento para que se abra en una aplicación en particular, lo que realmente hace es adjuntar algunos metadatos al archivo (piense en ello como pegar una nota post-it en el archivo) que dice abrirlo con esa aplicación en particular. En segundo lugar, si un documento está en cuarentena (porque fue descargado de Internet, o creado por una aplicación de espacio aislado, o por alguna otra razón), se considera no confiable y la política de seguridad de gatekeeper se aplicará a cualquier cosa como ejecutable en el archivo.

Estas dos características pueden interactuar de una manera desafortunada: esa nota "abrir con" es una instrucción sobre qué hacer y, por lo tanto, (más o menos) código ejecutable, y por lo tanto, la política de seguridad de gatekeeper se aplica a ella (aunque haya creado la nota, es "parte de" el archivo no confiable, y por lo tanto no confiable). Por lo tanto, al hacer doble clic en un documento (con metadatos "abrir con") puede obtener la advertencia / error de la aplicación no confiable.

Afortunadamente, siempre que desee que todos los archivos de ese tipo (.cs en este caso) se abran en la misma aplicación, hay una solución: en la ventana Información, sección Abrir con, seleccione la aplicación que desee (por ejemplo, Visual Studio Code) , y luego haga clic en "Cambiar todo" . Esto elimina los metadatos del archivo y, en su lugar, hace una entrada en sus preferencias de Servicios de lanzamiento que dice que prefiere tener archivos de ese tipo abiertos en esa aplicación. Dado que la configuración ahora es una configuración personal en lugar de una nota adjunta a un archivo no confiable, el problema desaparece.

Gordon Davisson
fuente
1
Si hace clic con control y selecciona "abrir" en el archivo en cuestión, y luego acepta que es confiable en el diálogo resultante, creo que se abrirá como se desee en todos los casos futuros, ya que el sistema confiará en él en el futuro, incluso si el baile "cambiar todo" no se ha hecho.
j-beda
44
@ j-beda Si mantiene presionada la tecla Opción después de abrir el menú contextual de un archivo, el elemento Abrir con cambia a Abrir siempre con.
PseudoSu
@PseudoSu tiene razón. Creé un archivo .xlsx con LibreOffice y primero simplemente hice clic derecho - "abrir con", luego marqué "abrir siempre con" en la nueva ventana (cuidado: ¡en Windows esto cambia la aplicación predeterminada para los otros archivos también!) Pero aún se muestra el mensaje "no se puede abrir porque ..." después. Para deshacerme de él, tuve que hacer clic con el botón derecho y elegir "abrir siempre con", luego presionar "abrir" en el cuadro de diálogo "¿estás seguro?".
Neph
6

El documento probablemente está marcado como executable.

Debe eliminar el bit ejecutable del archivo. Esto no afecta el contenido del archivo, solo cómo lo maneja el sistema operativo. Puede hacer esto con la herramienta de línea de comando chmod:

chmod -x <path to file>

Archivo marcado como ejecutable

Todos los archivos ejecutables pasan por las comprobaciones de seguridad de macOS. Como este archivo no es un ejecutable firmado, las comprobaciones fallan.

Como se trata de un archivo marcado como ejecutable por error, se deshabilita la capacidad de abrir sin pasar por las comprobaciones; no hay ejecutable para iniciar realmente.

Este problema es bastante común al mover archivos entre sistemas operativos. Las diferencias en la importancia de los bits de tipo de archivo se pierden efectivamente en la traducción.

Graham Miln
fuente
3

Esto probablemente se deba a que el archivo se descargó de Internet; Safari lo marca en cuarentena para dificultar la ejecución de malware.

Puede probar esto fácilmente haciendo xattr <file>y comprobando si una de las líneas de salida es com.apple.quarantine.

Si lo hace, la solución es simplemente hacer xattr -d com.apple.quarantine <file>. Tenga en cuenta que ejecutar ese comando para un archivo que no está en cuarentena dará un error de que el atributo no estaba presente. Por lo tanto, es seguro comenzar con eso; Si se da la advertencia, busque otra solución.

Fizker
fuente
Esta es la respuesta correcta.
Rick
ESTO: ¡absolutamente es la respuesta correcta!
Tony
1

Estaba enfrentando este problema para todos los archivos .php.

También puede suceder para archivos con otras extensiones.

Si está utilizando MacOS High Sierra o Mojave: todo lo que necesita hacer es hacer clic con el botón derecho en cualquiera de los archivos> Obtener información> Abrir con (elija la aplicación con la que desea abrir el archivo)> Haga clic en cambiar todo.

ingrese la descripción de la imagen aquí

Eso es todo lo que necesitas hacer. Ahora todos los archivos con esta extensión se abrirán fácilmente.

Kunal
fuente
Esta no es una respuesta correcta. El método que describe aquí es para abrir documentos que no tienen una aplicación asociada a ellos a través de LaunchServices, no documentos o aplicaciones que no se pueden abrir a través del marco de seguridad macOS.
Almo
@Almo, No, este método no es para "abrir archivos que no tienen una aplicación asociada a eso". Escribí esta respuesta porque ese es exactamente el problema que enfrentan los usuarios y buscan en Google la solución. Este pequeño ajuste ayuda a arreglar lo que están buscando exactamente.
Kunal
Um, si, lo es. Su solución no ayudó a mi caso porque era un problema de seguridad, no un problema de "qué aplicación abrir con", que es lo que ha hecho.
Almo
0

Tu Mac te protege de los "desarrolladores no identificados" de forma predeterminada. De forma predeterminada, no puede ejecutar aplicaciones que no se descargan de la tienda de aplicaciones. Pruebe esto: abra Preferencias-> Seguridad y privacidad-> General, cambie "Permitir aplicaciones descargadas de:" a "En cualquier lugar". Eso debería resolver el mensaje que viene.

Rutger_ADD
fuente
Un archivo .cs no es una aplicación. La aplicación que abre el archivo ya es confiable, como se indica en la pregunta. Ver la respuesta aceptada.
Almo
A menos que sea una aplicación y alguien haya cambiado la extensión para engañarte para que la abras.
John Keates
Pero si cambia un .app por algo diferente, no se abrirá como una aplicación porque .app es una carpeta. Una vez que le cambia el nombre, se comporta como una carpeta normal.
Almo
Esto evitará que aparezcan los mensajes, pero no resolverá la raíz del problema. Asker presumiblemente no quiere deshabilitar Gatekeeper por completo.
Wowfunhappy
-1

Intente hacer clic derecho en el archivo y elegir "Abrir con ...", y abrirlo con la aplicación que desea usar. Esta vez, debería obtener una opción de "abrir de todos modos". Después de hacerlo una vez, debería poder cambiar la aplicación asociada para ese archivo (solo) y abrirlo sin problemas.

Leer
fuente
Esta no es una respuesta correcta. El método que describe aquí es para abrir documentos que no tienen una aplicación asociada a ellos a través de LaunchServices, no documentos o aplicaciones que no se pueden abrir a través del marco de seguridad macOS.
IconDaemon
Bueno, tuve el mismo problema que el OP, con una aplicación diferente: tenía un PDF particular que se abrió en Vista previa pero quería que se abriera en Acrobat Pro; cuando cambié la aplicación asociada para ese documento y hice doble clic en ella, obtuve el bloqueo de seguridad. Cuando hice clic derecho y elegí "abrir de todos modos" una vez, pude hacer doble clic sin problemas. (También hice la papelería PDF, ¿tal vez eso también estuvo involucrado?)
Lea