2 votos

¿Dónde guarda Pages su lista de documentos abiertos recientemente?

Actualmente estoy creando una extensión de raycast para abrir rápidamente documentos de Pages abiertos recientemente.

Ahora, tengo que encontrar una manera de acceder a los documentos y sus rutas. Intenté seguir esta respuesta y me encontré con ~/Library/Containers/com.apple.iWork.Pages/Data/Library/Preferences/com.apple.iWork.Pages.plist. Este archivo plist contiene una clave llamada TSARecentOpenedDocumentTimestamps que corresponde a un array de marcas de tiempo de cuándo abrí documentos de Pages.

Sin embargo, al usar la herramienta de búsqueda de plist integrada de Xcode, no pude encontrar ningún array de rutas o nombres de archivos abiertos recientemente. También intenté renombrar el archivo a com.apple.iWork.Pages.old.plist y luego cerré y abrí Pages de nuevo. Después de abrirlo, me encontré con la pantalla de "bienvenido a pages", como cuando lo abrí por primera vez después de obtener mi MacBook. Sin embargo, intenté ir a file -> open recent en la barra de menú y encontré que mis nombres de archivo abiertos recientemente todavía estaban allí, pero estaban atenuados. Por lo tanto, los archivos abiertos recientemente no podrían haber sido almacenados en ese plist.

Existe una extensión de raycast para abrir proyectos de Visual Studio Code abiertos recientemente, así que bifurqué el código para ver cómo. Lee de una base de datos ubicada en ~/Library/Application Support/Code/User/globalStorage/state.vscdb con la siguiente consulta SQL SELECT json_extract(value, '$.entries') as entries FROM ItemTable WHERE key = 'history.recentlyOpenedPathsList'. Sin embargo, al intentar encontrar un archivo similar para Pages, me di cuenta de que ni siquiera tiene una carpeta en ~/Library/Application Support con sus datos.

No tengo ni idea de dónde Pages podría almacenar estos datos, y sin saberlo, no puedo construir esta extensión. ¿Alguien sabe dónde se almacenan estos datos? ¡Gracias de antemano!

2voto

Steve Evans Puntos 155

Las aplicaciones nativas de Mac delegan esta funcionalidad a los frameworks de Apple.

AppKit y NSDocumentController

Para las aplicaciones de Mac basadas en documentos, los documentos recientes son manejados por la clase NSDocumentController de Apple's AppKit. Las aplicaciones pueden llamar al método NSDocumentController recentDocumentsURLs para acceder a esta lista.

Esto significa que la lista es gestionada por macOS y no se espera que se lea directamente.

Servicios de Inicio

Por debajo de NSDocumentController, los documentos recientes son gestionados por Servicios de Inicio:

Los Servicios de Inicio de macOS son una API que permite a una aplicación en ejecución abrir otras aplicaciones o sus archivos de documentos, similar al Finder o al Dock. Utilizando los Servicios de Inicio, una aplicación puede realizar tareas como:

  • ...
  • Mantener y actualizar el contenido del menú de Elementos Recientes

Ver sharedfilelistd y sfltool para comandos relacionados.

com.apple.sharedfilelist

Listado en la sección de archivos relacionados de la página del manual de sharedfilelistd está este patrón de archivo:

ls ~/Library/Application\ Support/com.apple.sharedfilelist/*

Estos archivos almacenan los documentos recientes por aplicación. Parecen estar codificados por NSCoder y escritos como archivos de Lista de Propiedades Binarias. Pasar un archivo al comando file confirma el formato base de Apple binary property list.

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