6 votes

Quicklook a cessé de fonctionner avec les fichiers .m et .h de xcode soudainement

Il y a une semaine, quicklook a cessé de fonctionner avec les fichiers .m et .h. Au lieu de cela, il me montre une vignette .m ou .h. Je pense qu'un message est apparu ce jour-là et je ne l'ai pas lu — j'ai répondu à la question rapidement — mais je ne faisais rien avec le système. Quoi qu'il en soit, j'ai maintenant perdu le quicklook pour ces types de fichiers.

Il fonctionne toujours pour tous les autres fichiers par défaut. J'ai essayé de copier les fichiers ".qlgenerator" d'un autre Mac, qui a la même version du système d'exploitation... et ça n'a pas fonctionné non plus.

J'ai essayé de vérifier/réparer les permissions du disque, il a indiqué quelque chose concernant les fichiers .qlgenerator, mais je me suis dit "C'est probablement à cause de mes fichiers copiés-collés qui ont probablement changé certaines permissions". Quoi qu'il en soit, cela n'a pas résolu le problème.

J'ai également essayé d'exécuter qlmanage -r, et de redémarrer mon Mac. Le problème persiste.

L'autre Mac affiche toujours le moyen par défaut (c'est-à-dire, avec des aperçus quicklook) pour ces types de fichiers.

Avez-vous une idée de ce qui a mal tourné? Pensez-vous que ce message auquel j'ai répondu rapidement en est responsable? J'ai l'impression que c'est le cas, mais je n'en suis pas sûr, car je ne configurais pas le système ou quoi que ce soit, ni même quoi que ce soit qui soit lié ni à quicklook (je ne savais pas que cette fonctionnalité avait un nom à l'époque) ni à xcode... Je suis perdu.

EDIT Comme @Bootle l'a suggéré, j'ai exécuté

qlmanage -p FILE

et étonnamment, le Quicklook a ouvert correctement le fichier, c'est-à-dire que vous pouvez voir le contenu du fichier et la coloration par défaut d'XCode pour celui-ci. De plus, la sortie suivante a été imprimée dans le terminal. description de l'image

Des idées?

EDIT De nouveaux indices sont apparus après avoir vérifié le journal de la console après l'ajout de @StvnW.

Je joins l'image des journaux après avoir ordonné le quicklook sur un fichier

MISE À JOUR La solution était due au fait que je conservais des versions antérieures d'XCodes depuis 3.6.2 ^_^ et d'autres versions, je les ai tous mis dans un dossier où je me suis interdit l'accès. Ainsi, ils sont devenus inaccessibles pour le système également. Et le problème a été résolu, le système (ou QL) s'est réparé vers la dernière application officielle d'XCode.

Mais tout cela grâce à la réponse ci-dessous qui m'a donné cette indication à partir du débogage. Je suppose que d'autres personnes qui ont le même problème devraient suivre sa réponse. Je marque cette réponse comme la réponse correcte

6voto

StvnW Points 486

Vous pouvez envisager d'utiliser simplement QLStephen qui ajoutera un support QuickLook approprié pour tous les fichiers texte, quelles que soient leurs extensions. Il gérera également correctement les fichiers sans extensions (par exemple, README, Makefile). Ce que j'aime, c'est que vous n'avez pas besoin de maintenir une liste d'extensions ; QLStephen détecte automatiquement les fichiers texte. QLStephen est indépendant de XCode et est un plugin QL que vous déposez dans /Library/QuickLook/ ou ~/Library/QuickLook/.

Le fait que je m'appelle aussi Steven est purement fortuit.

Éditer : Débogage QuickLook basé sur des informations supplémentaires de l'OP :

Activer le journalisation de QuickLook :

defaults write -g QLEnableLogging YES

Voici une sortie de journalisation de référence (écrite dans Console) :

Xcode standard installé :

2014-04-29 2:46:08.172 PM quicklookd[19315]: 
    [QL] Création de vignettes file://localhost/Users/user/src/hello/main.m. 
    UTI du type de contenu : public.objective-c-source
    Générateur utilisé : 

2014-04-29 2:46:08.173 PM com.apple.quicklook.satellite[19330]:
    [QL] .
    UTI du type de contenu : public.objective-c-source.
    Générateur utilisé : 

Générateur tiers (QLColorCode) installé :

2014-04-29 2:51:40.458 PM quicklookd[19359]:
    [QL] Création de vignettes file://localhost/Users/user/src/hello/main.m.
    UTI du type de contenu : public.objective-c-source.
    Générateur utilisé : 

2014-04-29 2:51:40.459 PM com.apple.quicklook.satellite[19367]:
    [QL] .
    UTI du type de contenu : public.objective-c-source.
    Générateur utilisé : 

Étant donné que les choses fonctionnent pour vous lorsque vous appelez qlmanage depuis la ligne de commande, vous pourriez comparer les journaux écrits dans Console avec la sortie de l'invocation manuelle en ligne et repérer le problème. Avec seulement Xcode installé :

[user@macbook]/Users/user/src/hello$ qlmanage -p -d 1 main.m 
Test de l'aperçu Quick Look avec les fichiers :
    main.m
[DÉBOGAGE] Enregistrement de  pour public.image
[DÉBOGAGE] Test d'aperçu pour main.m -- file://localhost/Users/user/src/hello/.
        UTI du type de contenu : public.objective-c-source
[DÉBOGAGE] Aperçu de file://localhost/Users/user/src/hello/main.m.
        UTI du type de contenu : public.objective-c-source.
        Générateur utilisé : 
[DÉBOGAGE] Chargement de 
[DÉBOGAGE] Aperçu de file://localhost/Users/user/src/hello/main.m terminé

4voto

tonys Points 2334

QuickLook pour ces types de fichiers fonctionne car le type de fichier est spécifié dans Info.plist de Xcode.

Pour que QuickLook utilise Xcode pour afficher rapidement ces fichiers de nouveau dans Finder, vous devrez éditer le fichier Info.plist de Xcode. Vous le trouverez en faisant un clic droit sur le fichier Xcode.app dans vos Applications et en cliquant sur "Afficher le contenu du paquet". Vous trouverez Info.plist dans le dossier Contents qui s'ouvre.

Dans le fichier Info.plist, tous les types de fichiers associés à Xcode sont répertoriés en tant que dictionnaires "CFBundleTypeExtensions".

Une fois le plist ouvert, recherchez h (ou la même chose avec 'm'). S'il n'est pas trouvé, vous devrez l'ajouter.

Remarque: À ce stade, vous voudrez peut-être créer une sauvegarde du fichier Xcode.app entier au cas où quelque chose tournerait mal.

Faites une copie de Info.plist en le faisant glisser en maintenant la touche alt vers votre Bureau. Ouvrez la copie et recherchez CFBundleExecutable. Vous verrez à la ligne précédente. Avant le , collez le bloc de texte permettant à un type de fichier d'être associé à Xcode (indiqué ci-dessous). Ce bloc devrait commencer et se terminer par et , respectivement.

Pour le fichier .h:

        CFBundleTypeExtensions

            h

        CFBundleTypeIconFile
        c-header_Icon
        CFBundleTypeName
        C Header Source
        CFBundleTypeRole
        Editor
        LSIsAppleDefaultForType

        LSItemContentTypes

            public.c-header

Pour le fichier .m:

    CFBundleTypeExtensions

        m

    CFBundleTypeIconFile
    objective-c-source_Icon
    CFBundleTypeName
    Objective-C Source
    CFBundleTypeRole
    Editor
    LSIsAppleDefaultForType

    LSItemContentTypes

        public.objective-c-source

Une fois cela fait, vous devriez pouvoir copier le fichier Info.plist édité de retour dans le dossier Contents de Xcode.app. Parfois, les applications n'aiment pas que vous modifiez leurs plists et décident de ne plus fonctionner par la suite. Si c'est le cas, restaurez simplement à partir de la copie que vous avez faite plus tôt.

Cela peut être reproduit avec n'importe quelle application et n'importe quel type de fichier. S'il y a une meilleure façon de le faire peut-être en modifiant/définissant certaines préférences dans Xcode, ce serait bon de le savoir.

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