3 votos

Error relacionado con el nombre de la clave compleja plist

Estoy tratando de determinar cómo resolver un error relacionado con un nombre de clave compleja en un archivo de lista de propiedades. El contenido del archivo plist es el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>19781A58-AAF7-4D5A-AZB2-8D82F2A3ZA97@example.com</key>
    <dict>
        <key>due</key>
        <date>2018-02-27T05:00:00Z</date>
        <key>start</key>
        <date>2018-02-26T15:08:52Z</date>
    </dict>
</dict>
</plist>

El archivo se creó con plutil y el par clave/valor como se muestra arriba fue aceptado/creado sin problemas. Sin embargo, si intento eliminar la clave/valor ( plutil -remove "19781A58-AAF7-4D5A-AZB2-8D82F2A3ZA97@example.com" example.plist ), recibo el siguiente error:

example.plist: Could not modify plist, error: No value to remove at key path 19781A58-AAF7-4D5A-AZB2-8D82F2A3ZA97@example.com

La razón por la que creo que esto tiene que ver con el nombre complejo de la clave es que puedo cambiar manualmente el nombre de la clave a "Prueba", momento en el que el comando de eliminación funciona como se espera.

He probado tanto a entrecomillar el nombre de la clave como a no hacerlo, así como a escapar el punto y la arroba (@), pero se observó el mismo error en todos los enfoques.

1voto

Ryan D.W. Puntos 8

La solución pasa por escapar caracteres, pero resulta que la utilidad plist no responde bien al "sobreescapado". Si escapo sólo los puntos en el nombre de la clave y nada más, funciona bien. Específicamente, el siguiente comando resultó en una eliminación exitosa de la clave:

plutil -remove "19781A58-AAF7-4D5A-AZB2-8D82F2A3ZA97@example\.com" example.plist

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X