1 votos

¿Cómo cambiar el icono de un archivo nativo de MacOS?

En primer lugar, hay varios posts aquí y en StackOverflow y SuperUser sobre esto, pero pocas de las respuestas son satisfactorias, definitivas o actualizadas.

Quiero cambiar el icono del archivo para todos los archivos PostScript en mi sistema a esto:

enter image description here

(Los usuarios veteranos de Mac quizá reconozcan la inspiración de mi diseño, al que todos son bienvenidos).

La mayoría de las soluciones sugieren hackear el Info.plist y los Recursos de la aplicación que abre el tipo de archivo: en este caso, Vista Previa, y eso no es deseable por varias razones - aumento de la seguridad en torno a la integridad de la aplicación, volver a aplicar la corrección después de cada actualización, etc.

La alternativa parece ser la creación de una aplicación "ficticia", aunque esto no parece estar completamente descrito. Se necesita una solución canónica, detallada y actualizada del problema.

Cambiar el icono/la miniatura del tipo de archivo

Cómo cambiar el icono de un archivo según su extensión (.txt, .cpp, .docx, etc)

https://superuser.com/questions/178316/how-to-set-an-icon-for-a-file-type-on-mac

https://superuser.com/questions/1270213/MacOS-create-an-icon-for-all-of-one-file-type

https://stackoverflow.com/questions/28523975/change-all-file-icons-with-same-type-yosemite

2voto

benwiggy Puntos 8

Mi solución al problema es:

  1. Cree una nueva aplicación en Xcode que contenga los recursos de iconos para el tipo de archivo.
  2. Seleccione esa aplicación como la predeterminada para el tipo de archivo.
  3. Sustituye el binario de la aplicación dentro de su paquete por un enlace duro al binario de la aplicación que quieres abrir el archivo.

EDIT: Esto sólo parece funcionar en Mojave: en Catalina, hay algún fallo fatal de señalización de código. Si alguien sabe cómo solucionarlo...

Crear una nueva aplicación en Xcode

Este paso no requiere ningún tipo de codificación. Abra un nuevo proyecto como aplicación basada en documentos, utilizando la extensión del tipo de archivo que desea cambiar.

enter image description here

En "Assets.xcassets", en la barra lateral, haga clic en el icono + y, en Iconos de aplicaciones e imágenes de inicio, seleccione crear un Nuevo icono genérico de MacOS .

enter image description here

Añade las imágenes de tamaño correcto a los cuadrados vacíos.

enter image description here

A continuación, en Objetivos > Información, defina los campos de Tipos de documentos con los datos pertinentes para su tipo de archivo. Seleccione el recurso Icono, y debería obtener el icono en el cuadrado vacío.

enter image description here

Puedes hacer lo mismo con las ITU importadas, para cubrir todas las bases.

enter image description here

Tu aplicación debería construirse y ejecutarse sin más esfuerzo. Salga de ella. De vuelta en Xcode, haz clic con el botón derecho en el producto de la aplicación y selecciona " Mostrar en el Buscador ". Mueve la aplicación a la carpeta de Aplicaciones.

enter image description here

Es posible que la base de datos de LaunchServices no se actualice inmediatamente con su nueva aplicación y sus iconos. Un consejo para forzar la actualización es copiar y pegar un icono en el cuadro de iconos en Obtener información en cualquier archivo. Puede eliminar el cambio inmediatamente.

Establece tu aplicación para que sea la aplicación por defecto para el tipo de archivo.

Esto se hace de la manera habitual en Obtener información ventana. Es posible que el Finder no actualice las ventanas existentes: cierre y vuelva a abrir para ver el cambio de icono.

enter image description here

Sustituir el binario

Haz clic con el botón derecho del ratón en tu nueva aplicación. Seleccione Mostrar el contenido del paquete . Navegue hasta el MacOS y borre el archivo ejecutable Unix que hay dentro, con el nombre de su aplicación.

En otra ventana del Finder, navegue hasta el archivo similar MacOS dentro del paquete de la aplicación que desea abrir el archivo. (En mi caso, BBEdit).

En el Terminal, escriba ln (es LN en minúscula) seguido de un espacio. A continuación, arrastra el ejecutable Unix de la aplicación "de destino" a la ventana de Terminal. A continuación, arrastra la carpeta vacía de MacOS de tu aplicación a la ventana de Terminal. El comando completado debería ser algo así:

ln /Applications/BBEdit.app/Contents/MacOS/BBEdit /Applications/PostScript.app/Contents/MacOS

Pulse Enter .

Ahora debería tener un enlace duro a la aplicación de destino (BBEdit) en su aplicación ficticia.

Queda una cosa importante por hacer: renombrar este enlace con el nombre de tu aplicación. (En mi caso, 'PostScript'.) Podrías hacerlo en un solo paso como parte del comando de Terminal anterior, añadiendo el nombre.

ln /Applications/BBEdit.app/Contents/MacOS/BBEdit /Applications/PostScript.app/Contents/MacOS/PostScript

Hecho.

Siempre que tu aplicación ficticia y la aplicación de destino estén instaladas, los archivos mostrarán los iconos personalizados y se iniciarán con la aplicación que elijas, sin modificar las aplicaciones instaladas. Tampoco parece haber ninguna penalización de velocidad.

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