3 votes

Comment puis-je faire en sorte que Finder affiche le bon "Type" après avoir supprimé une application?

Lorsqu'un fichier pour une application connue est renommé avec une extension différente, par exemple ".notanext", il conserve à la fois l'icône et le 'type' répertorié dans la fenêtre du finder. L'icône peut être supprimée en supprimant le cache des icônes (bien que je ne comprenne vraiment pas pourquoi j'aurais besoin de le faire).

Cependant, je n'arrive pas à me débarrasser du 'type' - il conserve le texte de la dernière extension 'connue'. J'ai essayé de vider la base de données des services de lancement à la fois manuellement avec lsregister et avec OnyX. J'ai également effacé tous les attributs supplémentaires avec xattr.

Je ne cherche pas à savoir comment enregistrer une nouvelle association d'application. Je veux désenregistrer complètement une application connue afin que la vue des fichiers dans le finder redevienne ce qu'elle aurait été lors d'une installation vierge.

Je suis sous Monterey. Pour reproduire, choisissez n'importe quel fichier avec une application connue et une icône et un 'type', puis renommez-le avec une extension garantie inconnue sur le système. L'icône et le 'type' restent les mêmes. Après avoir effacé la base de données des services de lancement. Après le redémarrage. Du moins pour moi. Je n'ai pas accès à d'autres systèmes macOS pour comparer.

La question est donc : Comment puis-je amener le finder à afficher le 'Type' correct, après la suppression d'une application ?

2voto

Xecrets Points 51

Il semble que Launch Services soit agressif dans l'ajout d'applications et d'associations à sa base de données et que Finder ajoute de nouvelles choses. Pas autant pour le nettoyer...

Il trouvera et utilisera à peu près n'importe quoi qui est une application, c'est-à-dire un dossier avec une extension .app et la structure appropriée d'une application. Y compris dans la Corbeille! En tant que développeur, c'est assez ennuyeux. Je ne trouve pas de moyen de le restreindre par exemple à '/Applications'. Les recettes habituelles pour exécuter lsregister -kill n'aident pas, car il redécouvrira simplement les différentes applications et se réenregistrera dans la base de données. Pour nettoyer les anciennes entrées, supprimez l'application problématique du système de fichiers et si elle ne disparaît toujours pas de Launch Services, faites quelque chose comme ce qui suit pour trouver le coupable et vous en débarrasser:

alias lsregister=/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister
lsregister -dump | grep path: | grep -i [AppNameToUnregister]
lsregister -u [ThePathFound].app
killall Finder

En général, l'option -dump est très utile pour comprendre ce qui se trouve là-dedans et pour trouver ce que vous voulez en faire disparaître. Normalement, une application sera supprimée de la base de données de Launch Services lorsqu'elle est supprimée et retirée de la Corbeille - mais vous devrez quand même redémarrer Finder pour qu'il le fasse aussi (avec killall Finder par exemple).

Ce n'est pas seulement Launch Services qui est agressif dans la collecte et l'affichage d'informations difficiles à comprendre d'où elles proviennent. L'indexation Spotlight... Il collecte des métadonnées provenant de toutes sortes d'endroits. Les recettes les plus courantes pour effacer l'index ne sont pas toujours les meilleures (mdutil -E pour 'effacer' l'index est le plus souvent suggéré). Je ne suis pas sûr de ce que fait réellement -E, mais mdutil -X est mieux. Il supprime vraiment des choses, y compris des éléments anciens et obsolètes. Donc, quelque chose comme ceci:

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

Certains sites prétendent que / et /System/Volumes/Data se réfèrent au même emplacement, mais si vous faites mdutil -L, ils afficheront des contenus différents. Pour être sûr, je supprime les deux. Si quelqu'un sait mieux, merci de commenter!

En ce qui concerne l'icône, j'ai réussi à la réinitialiser simplement avec sudo rm -rfv /Library/Caches/com.apple.iconservices.store. De nombreux sites recommandent également de supprimer un tas d'autres choses dans /private/var/folders et d'autres actions. Ce n'a pas été nécessaire pour moi, mais cela pourrait entraîner laisser derrière lui des 'déchets' non référencés. Je ne sais pas vraiment. Si vous le savez, merci de commenter!

Enfin, il semble, bien que je n'ai pas pu le prouver, que Spotlight indexe et peuple en fait la propriété kMDItemKind à l'aide des associations d'extensions de fichier trouvées dans les applications iOS sur l'appstore! Vous pouvez utiliser mdls pour afficher toutes les propriétés de l'index Spotlight. C'est sur macOS. J'ai essayé très fort, y compris en cherchant chaque fichier dans le système de fichiers pour le type en question, et la seule explication que je trouve est que Spotlight se rabat sur les manifestes d'applications (info.plist) récupérés à partir d'applications iOS qui apparaissent dans le magasin, même sur macOS. C'est comme si on essayait trop fort... Si quelqu'un peut expliquer le comportement d'une manière différente, merci de le faire!

(Ceci est sur Monterey avec un seul disque. Vos kilomètres peuvent varier, et probablement le feront, car Apple change apparemment presque tout entre chaque version. Mais cela devrait quand même donner quelques indications utiles sur où commencer.)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X