1 votos

Para entender cómo Finder utiliza iconos.

No puedo hablar en nombre de todos, por supuesto, pero parece que hay muchas personas, no solo yo, que tienen o han tenido el problema de que Finder muestra íconos incorrectos. Por ejemplo, tienes Sublime Text instalado, y tienes test.md en alguna parte. Pero a pesar de que has establecido "Abrir con" en "Xcode" para todos tus archivos Markdown (Obtener Información > Abrir con = Xcode > Cambiar Todo), tu test.md seguirá teniendo el ícono de Sublime Text.

Hay muchas soluciones en internet sobre este problema, por ejemplo, una larga discusión aquí o este artículo de Howard Oakley.

Sin embargo, en la práctica, cuando intenté entender por qué algunos íconos no se veían como esperaba, todas estas soluciones y explicaciones no fueron suficientes. Así que decidí investigarlo por mi cuenta, con muchas pruebas y demás.

Hice algunas observaciones y quiero que todos me ayuden a verificarlas, para nuestro beneficio común. Para que si alguien tiene íconos incorrectos, pueda entender por qué sucede y qué hacer al respecto.

Parte 1. Pre-requisitos

  • Actualizar macOS e instalar/actualizar Sublime Text, CotEditor, Typora y Xcode.

  • Iniciar tu computadora en Recuperación de macOS y desactivar la protección de integridad del sistema (Opciones > Continuar > Utilidades > Terminal), luego reiniciar.

    csrutil disable

    (Más tarde puedes volver a habilitarlo de la misma manera, usando csrutil enable.)

    reboot
  • Escribe el siguiente script para limpiar la caché de íconos, lo utilizarás mucho:

    sudo rm -rfv /Library/Caches/com.apple.iconservices.store; sudo find /private/var/folders/ \( -name com.apple.dock.iconcache -or -name com.apple.iconservices \) -exec rm -rfv {} \; ; sleep 3;sudo touch /Applications/* ; killall Dock; killall Finder
  • Para mayor comodidad, desactiva "Mostrar vistas previas de iconos" en tu directorio de pruebas.

Parte 2. Mis observaciones: Markdown

Crea test.md > Obtener Información > Abrir Con = Sublime Text > Borrar la caché de íconos utilizando el script anterior. El ícono cambiará a

ingresa una descripción de la imagen aquí

test.md > Obtener Información > Abrir Con = CotEditor > Borrar la caché de íconos utilizando el script anterior. El ícono cambiará a

ingresa una descripción de la imagen aquí

test.md > Obtener Información > Abrir Con = Typora > Borrar la caché de íconos utilizando el script anterior. El ícono cambiará a

ingresa una descripción de la imagen aquí

test.md > Obtener Información > Abrir Con = TextEdit > Borrar la caché de íconos utilizando el script anterior. ¡Ten en cuenta que el ícono cambiará al ícono que sería si hubieras cambiado "Abrir Con" a "Xcode" en lugar de "TextEdit"! (Espero que esta oración sea clara, el inglés no es mi lengua materna). Aquí está:

ingresa una descripción de la imagen aquí

Según entiendo, esto se debe a que TextEdit no soporta Markdown, desde el punto de vista de Finder, por lo que Finder utiliza un ícono del app más "cercano" que sí lo soporta. Ten en cuenta que no entiendo por qué Finder prefirió Xcode sobre Sublime Text, CotEditor o Typora, todos los cuales también soportan Markdown.

Parte 3. Mis observaciones: Lua

(El caso de Lua no nos dice nada nuevo. Simplemente confirma lo que ya está escrito en la sección de Markdown.)

Crea test.lua > Obtener Información > Abrir Con = Sublime Text > Borrar la caché de íconos utilizando el script anterior. El ícono cambiará a

ingresa una descripción de la imagen aquí

Obtener Información > Abrir Con = TextEdit o Xcode > Borrar la caché de íconos utilizando el script anterior. El ícono cambiará a

ingresa una descripción de la imagen aquí

Según entiendo, esto es porque ni TextEdit ni Xcode soportan Lua, desde el punto de vista de Finder, mientras que Lua es compatible con Sublime Text y CotEditor, por lo que Finder utiliza un ícono del app más "cercano" que sí lo soporta, que resulta ser CotEditor. Ten en cuenta que no entiendo por qué Finder prefirió CotEditor sobre Sublime Text.

Mis preguntas

  1. ¿Todo funciona igual para ti?

  2. ¿Sabes si mis explicaciones anteriores son correctas?

  3. ¿Sabes por qué Finder prefirió Xcode sobre Sublime Text, CotEditor y Typora para Markdown; y por qué prefirió CotEditor sobre Sublime Text para Lua?

0voto

Douglas Puntos 10417

La clave dentro de Info.plist de la aplicación con la que desea asociar corresponde al icono asociado es CFBundleDocumentTypes. Debería verse algo así

CFBundleDocumentTypes = (
    {   CFBundleTypeName = "Origen de MarkDown";
        CFBundleTypeExtensions = (md, MD); 
        CFBundleTypeIconFile = MD; 
    },
    {   CFBundleTypeName = "Origen de Foo";
        CFBundleTypeExtensions = (foo); 
        CFBundleTypeIconFile = FOO; 
    },

Agregué la segunda entrada para mostrar un ejemplo de múltiples definiciones de tipos

Su archivo de icono, en caso de que necesite editarlo, se encontraría en

Aplicación .app/Contents/Resources/Foo.icns y hacer referencia a él como Foo en Info.plist.

Aquí es donde ejecutar su script para purgar la caché de iconos es útil; LaunchServices se verá obligado a regenerar el icono de archivo en función de lo que haya configurado en el Info.plist

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