30 votes

Problème d'ouverture de fichiers plist dans l'éditeur de texte

Depuis Finder, je peux prévisualiser un fichier plist sans aucune difficulté. Par exemple, en utilisant l'option Quick Look avec ~/Library/Preferences/com.apple.Safari.RSS.plist, j'obtiens une belle prévisualisation de son contenu:

Quick Look

Cependant, si j'essaie ensuite d'ouvrir le fichier, que ce soit avec TextEdit ou tout autre éditeur (j'ai essayé SublimeText, TextMate, Vim, Nano et Coda 2 jusqu'à présent), l'encodage semble incorrect:

bplist00Ò_"FixedRefreshesInBackgroundSettings_(com.apple.PreferenceSync.ExcludeSyncKeys ¡ 2]^`

Voici à quoi ça ressemble si je l'ouvre avec TextEdit:

TextEdit

J'ai essayé de changer l'encodage dans Sublime Text et d'autres applications, mais cela n'a pas aidé.

Des idées?

Je suis sous 10.8.4.

38voto

yoliho Points 340

Les fichiers plist ne sont pas nécessairement du texte brut, ils doivent donc être passés par un convertisseur. Finder et Xcode (qui possède un éditeur plist) font cela sans informer l'utilisateur

Le format binaire est documenté dans ce code C donc toute application peut le convertir et quelqu'un a écrit une description du format en anglais et plus de documentation d'Apple ici mais notez qu'il fait référence à d'anciens chemins dans /Developer/Documentation

Le programme en ligne de commande plutil peut convertir vers et depuis le XML

par exemple pour visualiser une liste de propriétés binaire au format XML sur la sortie standard:

plutil -convert xml1 -o - 

Aussi pour convertir un binaire en plist XML sur place et ensuite le laisser ainsi pour que le programme utilisateur puisse lire les deux.

plutil -convert xml1

0 votes

Merci. Je vois. Donc, si j'ai besoin de le modifier, je dois le convertir en XML, l'ouvrir avec un éditeur, puis le reconvertir. Je suppose que c'est ça. Pas besoin de répondre sauf si je me trompe!

5 votes

Vous pouvez également utiliser plutil -convert xml1 ~/Library/Preferences/com.apple.Safari.RSS.plist pour convertir le plist en XML sur place. Et après avoir modifié le plist, vous n'avez pas besoin de le reconvertir en binaire.

2 votes

> Finder et Xcode (qui possède un éditeur de plist) font cela sans en informer l'utilisateur. Pour être précis, ce n'est pas Finder qui fait cela, c'est QuickLook sous la forme d'un plugin QuickLook.

6voto

Igor Zelaya Points 2266

Vous pouvez également modifier les fichiers plist avec PlistBuddy, qui est un programme en ligne de commande.

PlistBuddy est situé à /usr/libexec/PlistBuddy.

1 votes

Apple a supprimé cette page, et je ne peux trouver aucune archive. Le manuel est encore disponible sur macOS Mojave cependant.

1 votes

@FranklinYu, en effet. Il y a aussi un tutoriel sur marcosantadev.com/manage-plist-files-plistbuddy.

5voto

JeremyTM Points 159

Comme vous avez mentionné Sublime Text, il existe maintenant un plugin que vous pouvez utiliser qui fait automatiquement la conversion pour vous:

https://packagecontrol.io/packages/BinaryPlist

1voto

SyndiShanX Points 11

J'ai créé un fichier CMD (Batch) pour aider les gens à convertir des fichiers plist sous Windows :
Instructions :
1. Copiez tout le code
2. Créez un nouveau document texte
3. Collez le code
4. Enregistrez le fichier
5. Renommez le fichier avec ".bat" au lieu de ".txt"
6. Ouvrez-le

    @echo off
    title Convertisseur PLIST ~SyndiShanX
    mode 1000
    color 0b

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Barre de séparation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :filedirectory
    cls
    echo Soit : Tapez le répertoire du fichier : (Ex. C:\Utilisateurs\(NomUtilisateur)\Bureau\Fichier.plist) ou faites glisser et déposez le fichier dans cette fenêtre
    echo Réalisé par : [SyndiShanX]
    echo Répertoire du fichier :
    set /p directory=
    cls

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Barre de séparation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :convertfile
    start "" "C:\Program Files\Common Files\Apple\Apple Application Support\plutil.exe" -convert xml1 %directory%
    goto complete

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Barre de séparation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :complete
    title Conversion de fichier terminée!
    color 0a
    echo Conversion de fichier terminée!
    pause
    cls
    goto exit

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Barre de séparation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :exit
    color 0c
    title Sortie...
    echo Sortie...
    pause
    cls
    exit

Ou vous pouvez utiliser la version qui ne se ferme pas après la conversion pour permettre plusieurs conversions sans rouvrir le fichier :

    @echo off
    title Convertisseur PLIST ~SyndiShanX
    mode 1000
    color 0b

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Barre de séparation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :filedirectory
    cls
    echo Soit : Tapez le répertoire du fichier : (Ex. C:\Utilisateurs\(NomUtilisateur)\Bureau\Fichier.plist) ou faites glisser et déposez le fichier dans cette fenêtre
    echo Réalisé par : [SyndiShanX]
    echo Répertoire du fichier :
    set /p directory=
    cls

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Barre de séparation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :convertfile
    start "" "C:\Program Files\Common Files\Apple\Apple Application Support\plutil.exe" -convert xml1 %directory%
    goto filedirectory

0voto

benwiggy Points 21125

BBEdit convertira les plists binaires et les sauvegardera correctement en temps réel.

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