5 votes

Comment "désenregistrer" un type de fichier / MIME auprès des services de lancement ?

Je travaille sur une application basée sur des documents en Cocoa, le fichier est de type bundle (un dossier que le Finder affiche comme un fichier unique, comme une application).

Tout fonctionnait parfaitement, mais j'ai fait l'erreur d'ajouter un identifiant de type de nom de domaine inversé au type de mon fichier dans mon info.plist (ce que j'ai appris plus tard qu'Apple déconseillait explicitement de faire). aquí ). Les documents de mon application ne ressemblent plus qu'à des dossiers dans le Finder, il n'y a donc plus d'option "ouvrir" ou "ouvrir avec" sur aucun d'entre eux et les données qu'ils contiennent sont exposées.

Supprimer l'identifiant MIME de ma plist et la reconstruire ne répare pas l'enregistrement du type de fichiers dans les services de lancement, même après avoir explicitement pointé LSRefresh sur la construction (il s'agit seulement d'une construction de débogage).

L'un d'entre vous, gourou des terminaux, peut-il me dire comment supprimer le type de fichier de la base de données des services de lancement ? Je suis sûr que si j'y parviens, tout se rétablira lors du prochain lancement de l'application.

2voto

klanomath Points 63400

L'enregistrement et le désenregistrement des applications et des types de documents se fait en toute simplicité :

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister

Pour obtenir de l'aide sur la commande, il suffit d'utiliser l'option h. :

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -h

Dans votre cas, j'essaierais d'utiliser l'option de désenregistrement :

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -u <path to bundle>

En fonction de votre application/bundle, vous pouvez avoir à ajouter un sudo et/ou redémarrer ensuite.


Une autre étape consiste à reconstruire complètement la base de données des services de lancement :

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

et/ou l'installation RCDefault.app et en essayant de supprimer le MIME/bundle/quoi que ce soit - ce qui est parfois possible.

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