Visor de plist (binario y XML)
Las listas de propiedades son como macOS e iOS guardan casi todo: preferencias de aplicaciones, Info.plist, perfiles de configuración, manifiestos de copias de seguridad. La mitad son XML que puedes leer en un editor, y la otra mitad son el formato binario de Apple, que se abre como un muro de bytes que empieza por las letras bplist. Esta herramienta lee ambos. El binario se decodifica de verdad en lugar de rastrear cadenas: el tráiler de 32 bytes al final del archivo dice cuánto ocupan los enteros de desplazamiento y de referencia y dónde está la tabla de objetos, y todos los valores se alcanzan a través de esa tabla, así que no hay forma de leer nada avanzando desde la cabecera. Enteros de uno, dos, cuatro y ocho bytes, reales, fechas en la época propia de Apple, datos en bruto, UID, arrays, conjuntos y diccionarios vuelven con su tipo intacto. El resultado se muestra como árbol y se ofrece como JSON y como plist XML, de modo que un archivo binario que no podías editar pasa a ser uno que sí. Cuando resulta ser un archivo de NSKeyedArchiver —una tabla plana de objetos unidos por referencias UID, que es lo que iOS escribe para cualquier cosa no trivial— lo indica, porque eso explica que el contenido no se parezca en nada a la estructura que la aplicación aparenta guardar. No se sube nada.
Cómo usar
- Suelta un archivo .plist o .mobileconfig, o pega texto de plist XML.
- El formato se detecta solo; los binarios indican cuántos objetos contienen.
- Lee el árbol: cada fila muestra la clave, el tipo y el valor.
- Copia el JSON si vas a procesarlo, o el plist XML si vas a editarlo.
- Los datos y las fechas se etiquetan en vez de aplanarse a cadenas.
Preguntas frecuentes
- ¿Qué diferencia hay entre un plist binario y uno XML?
- Solo la codificación. Contienen los mismos valores y macOS los trata de forma intercambiable. El binario es más pequeño y se carga más rápido, por eso casi todos los archivos de un dispositivo son binarios aunque los mismos datos se documenten como XML.
- ¿Por qué mi archivo son números sin sentido y claves que empiezan por $?
- Probablemente sea un archivo de NSKeyedArchiver. Guardan una lista plana de objetos en $objects y los unen con referencias UID en lugar de anidarlos, así que la forma que ves es la del archivo, no la de la aplicación. El visor lo señala cuando encuentra la clave $archiver.
- ¿Por qué en otros sitios las fechas salen 31 años desviadas?
- Apple cuenta los segundos desde el 2001-01-01 y no desde el 1970-01-01, una diferencia de 978307200 segundos. Leer una fecha de plist como marca de tiempo Unix la deja en los años setenta; aquí se aplica el desfase y las fechas salen bien.
- ¿Qué pasa con los datos binarios?
- Se mantienen como datos y se indica su longitud. En el JSON aparecen en base64 bajo una clave __data_base64, ya que JSON no tiene cadenas de bytes, y en la salida XML vuelven a ser un elemento <data>.
- ¿Puede editar o escribir un plist binario?
- Convierte un plist binario a XML, que puedes editar y volver a convertir con plutil o cualquier biblioteca de plist. Escribir el formato binario no es algo que haga esta herramienta.
- ¿Se sube mi archivo?
- No. Se analiza en tu navegador y no se envía nada a ningún servidor, lo que importa con los archivos de preferencias, que suelen contener nombres de cuenta y rutas.
Herramientas relacionadas
Excel (XLSX) a CSV, JSON y Markdown
Abre un libro .xlsx en el navegador y exporta cualquier hoja como CSV, JSON o tabla Markdown: el archivo no sale de tu equipo.
Decodificador de MessagePack
Pega bytes MessagePack en base64 o hex y lee los valores —tipos, mapas anidados, binarios y marcas de tiempo— en tu navegador.
Visor de archivos ICS y reglas de repetición
Abre una invitación .ics o una exportación de calendario y lee lo que contiene de verdad, con las fechas reales que genera una regla de repetición.
Constructor de Manifest PWA
Construye un `manifest.json` válido para Progressive Web App — name, icons, theme color, display mode, scope, orientation — con el HTML `<link>` y meta tags Apple correspondientes.
Conversor XML ↔ JSON
Convierte XML a JSON y viceversa, con soporte completo de atributos, prefijo de atributo y clave de texto configurables. DOMParser nativo del navegador maneja namespaces, CDATA, comentarios.
Visor de EPUB, metadatos y extractor de texto
Abre un .epub en el navegador: metadatos, lista de capítulos con recuento de palabras, el texto plano y las comprobaciones que explican por qué un lector rechaza el libro.