Problemas ao abrir arquivos plist no editor de texto

20

No Finder, posso visualizar um arquivo plist sem nenhuma dificuldade. Por exemplo, usando o Quick Look com ~/Library/Preferences/com.apple.Safari.RSS.plist, obtenho uma boa visualização de seu conteúdo:

Uma olhadela

No entanto, se eu tentar abrir o arquivo, com o TextEdit ou qualquer outro editor (tentei SublimeText, TextMate, Vim, Nano e Coda 2 até agora), a codificação parece estar desativada:

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

Aqui está o que parece se eu abri-lo com o TextEdit:

TextEdit

Tentei alterar a codificação no Sublime Text e em outros aplicativos, mas isso não ajuda.

Alguma ideia?

Estou executando o 10.8.4.

apc
fonte

Respostas:

23

Os arquivos plist não são necessariamente texto simples, portanto precisam ser executados através de um conversor. O Finder e o Xcode (que possui um editor plist) fazem isso sem informar o usuário

O formato binário está documentado neste código C para que qualquer aplicativo possa convertê-lo e alguém tenha escrito uma descrição do formato em inglês e mais documentação da Apple aqui, mas observe que ele faz referência a caminhos antigos em/Developer/Documentation

O programa de linha de comando plutil pode converter para e de XML

por exemplo, para visualizar uma lista de propriedades binárias no formato XML no stdout:

plutil -convert xml1 -o - <file name>

Também para converter um binário em um plist XML e depois deixá-lo para que o programa do usuário possa ler qualquer um.

plutil -convert xml1 <file name>
user151019
fonte
Obrigado. Entendo. Portanto, se eu precisar editá-lo, preciso convertê-lo para XML, abri-lo com um editor e depois convertê-lo novamente. Vou assumir que é assim. Não há necessidade de responder, a menos que eu entenda errado!
apc
3
Você também pode usar plutil -convert xml1 ~/Library/Preferences/com.apple.Safari.RSS.plistpara converter o plist em XML no local. E depois de editar o plist, você não precisa convertê-lo novamente em binário.
Lri
1
> O Finder e o Xcode (que possuem um editor plist) fazem isso sem informar o usuário. Para ser preciso, não é o Finder que está fazendo isso, é o QuickLook na forma de um plug-in QuickLook.
saagarjha
Você também pode usar o defaults read <file>comando mais recente para obter uma espécie de visualização JSON dele.
dlamblin
5

Você também pode editar arquivos plist com o PlistBuddy , que é um programa de linha de comando.

PlistBuddy está localizado em /usr/libexec/PlistBuddy.

lhf
fonte
1
A Apple removeu essa página e não consigo encontrar nenhum arquivo. Manual ainda disponível no macOS Mojave.
Franklin Yu
@FranklinYu, de fato. Também há tutorial em marcosantadev.com/manage-plist-files-plistbuddy .
Lhf 9/1218
0

Criei um arquivo CMD (Lote) para ajudar as pessoas a converter arquivos plist no Windows:
Instruções:
1.Copie todo o código
2.Crie um novo documento de texto
3.Paste o código
4.Salve o arquivo
4.Some o arquivo 5.Nomeie o arquivo com ".bat" em vez de ".txt"
6.Abra

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

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :filedirectory
    cls
    echo Either: Type the Directory of the File: (Ex. C:\Users\(UserName)\Desktop\File.plist) or Drag and Drop File onto This Window
    echo Made by: [SyndiShanX]
    echo File Directory:
    set /p directory=
    cls

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :complete
    title File Conversion Complete!
    color 0a
    echo File Conversion Complete!
    pause
    cls
    goto exit

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

Ou você pode usar a versão que não fecha após a conversão para permitir várias conversões sem reabrir o arquivo:

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

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :filedirectory
    cls
    echo Either: Type the Directory of the File: (Ex. C:\Users\(UserName)\Desktop\File.plist) or Drag and Drop File onto This Window
    echo Made by: [SyndiShanX]
    echo File Directory:
    set /p directory=
    cls

    ::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Separation-Bar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    :convertfile
    start "" "C:\Program Files\Common Files\Apple\Apple Application Support\plutil.exe" -convert xml1 %directory%
    goto filedirectory
SyndiShanX
fonte
1
Olá, e seja bem-vindo ao Ask Different! Essa resposta pode ser mais útil em outro lugar - o OP não está perguntando sobre o uso do Windows.
Scot
-1

Você pode converter o arquivo da lista de propriedades do formato binário em XML usando a seguinte linha de comando:

plutil -convert xml1 -o file.plist file.plist

Depois edite-o normalmente. Em segundo lugar, você não precisa convertê-lo novamente, pois geralmente os aplicativos reconhecem os dois formatos.

kenorb
fonte