Parece que Launch Services es agresivo al agregar aplicaciones y asociaciones a su base de datos y Finder al agregar cosas nuevas. No tanto en limpiarlo...
Encontrará y usará prácticamente cualquier cosa que sea una aplicación, es decir, una carpeta con un final .app y la estructura adecuada de una aplicación. ¡Incluso en la Papelera! Como desarrollador, eso es bastante molesto. No puedo encontrar una manera de restringirlo, por ejemplo, a '/Applications'. Las recetas habituales sobre ejecutar lsregister -kill no ayudan, ya que simplemente redescubrirá las diversas aplicaciones y las volverá a registrar en la base de datos. Para limpiar las entradas antiguas, borre la aplicación ofensiva del sistema de archivos y si aún no desaparece de Launch Services, haga algo como lo siguiente para encontrar al culpable y deshacerse de él:
alias lsregister=/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister
lsregister -dump | grep path: | grep -i [NombreDeAppParaCancelarRegistro]
lsregister -u [LaRutaEncontrada].app
killall Finder
En general, la opción -dump es muy útil para entender lo que hay dentro y encontrar lo que desee eliminar de allí. Normalmente, una aplicación se eliminará de la base de datos de Launch Services cuando se elimine y se elimine de la Papelera, pero aún así tendrá que reiniciar Finder para que también desaparezca (con killall Finder
, por ejemplo).
No solo es Launch Services lo que es agresivo al recopilar y mostrar información de la que es difícil entender de dónde proviene. La indexación de Spotlight... Recopila metadatos de todo tipo de lugares. Las recetas más comunes para limpiar el índice resultan no ser las mejores (se sugiere con frecuencia mdutil -E para 'limpiar' el índice). No estoy seguro de qué hace realmente -E, pero mdutil -X es mejor. Realmente elimina cosas, incluidas las antiguas y obsoletas. Entonces, algo así:
sudo mdutil -d /
sudo mdutil -d /System/Volumes/Data
sudo mdutil -X /
sudo mdutil -X /System/Volumes/Data
sudo mdutil -i on /
sudo mdutil -i on /System/Volumes/Data
Algunos sitios afirman que /
y /System/Volumes/Data
se refieren al mismo lugar, pero si hace mdutil -L
, se listarán diferentes contenidos. Así que, por si acaso, elimino ambos. Si alguien sabe algo mejor, ¡por favor comente!
En cuanto al icono, he tenido éxito restableciéndolo simplemente con sudo rm -rfv /Library/Caches/com.apple.iconservices.store
. Muchos sitios también recomiendan eliminar un montón de otras cosas en /private/var/folders
y algunas otras acciones. No ha sido necesario para mí, pero quizás esto hará que se quede basura no referenciada. Realmente no lo sé. ¡Si lo sabes, por favor comenta!
Finalmente parece, aunque no he podido probar esto, que Spotlight realmente indexa y poblal a propiedad kMDItemKind
utilizando asociaciones de extensiones de archivos encontradas en aplicaciones de iOS en la tienda de aplicaciones. Puedes usar mdls
para mostrar todas las propiedades del índice de Spotlight. Esto es en macOS. He intentado bastante, incluso buscando en todos los archivos del sistema de archivos el 'kind' en cuestión, y la única explicación que puedo encontrar es que Spotlight recurre a los manifiestos de aplicaciones (info.plist) recogidos de aplicaciones de iOS que aparecen en la tienda, incluso en macOS. Algo así como intentar demasiado... ¡Si alguien puede explicar el comportamiento de una manera diferente, por favor hazlo!
(Esto es en Monterey con un disco. Su experiencia puede variar, y probablemente lo hará, ya que Apple aparentemente cambia casi todo entre cada lanzamiento. Pero aún así debería dar algunas pistas útiles sobre dónde comenzar.)