¿Qué hace que un "paquete" macOS se muestre como un paquete?

3

Un paquete es solo un directorio, aparentemente, pero de alguna manera Finder y Path Finder saben que es un paquete.

¿Cómo se indica esto en el sistema de archivos? He intentado algunos cambios en un directorio para convertirlo en un paquete pero sin éxito.

    
pregunta Dan Rosenstark 10.04.2017 - 19:06

2 respuestas

5

Respuesta corta

Para registrar un documento como un paquete, el desarrollador de DayOne tendría que modificar la información de tipo de documento en el archivo de la lista de propiedades de información (Info.plist) de la aplicación DayOne.

Respuesta larga

Un paquete es un directorio del sistema de archivos utilizado por macOS e iOS. Es básicamente un directorio que aparecerá como un solo archivo, pero que de hecho puede contener un estado preservado de archivos y carpetas. Por lo tanto, una carpeta puede tener varias subcarpetas y muchos archivos, pero como un paquete se mostrará a los usuarios como un solo archivo. Por ejemplo, en macOS, el Finder verá un paquete como un único archivo para evitar que los usuarios se mezclen con el contenido real. Sin embargo, los usuarios pueden ver el contenido a través de varios métodos, como hacer clic con el botón derecho en el paquete y seleccionar Mostrar contenido del paquete en el menú contextual.

Bundle Programming Guide de Apple, disponible en su sitio de Desarrollador, tiene una sección completa en Paquetes de documentos. A continuación hay algunas citas relevantes:

  

Para registrar un documento como un paquete, debe modificar el tipo de documento   información en la lista de propiedades de información de su aplicación   ( Info.plist ) archivo. La clave CFBundleDocumentTypes almacena información   sobre los tipos de documentos que su aplicación soporta. Para cada documento   tipo de paquete, incluya la clave LSTypeIsPackage con un apropiado   valor. La presencia de esta clave le dice al Buscador y a los Servicios de Lanzamiento   para tratar los directorios con la extensión de archivo dada como un paquete. por   Para obtener más información sobre las claves Info.plist , consulte Lista de propiedades de información   Referencia clave .

     

Los paquetes de documentos siempre deben tener una extensión para identificar   ellos, aunque esa extensión pueda estar oculta por el usuario. los   La extensión le permite al Finder identificar su directorio de documentos y   tratarlo como un paquete Nunca debes asociar un paquete de documentos   con un tipo MIME o un tipo de sistema operativo de 4 bytes.

Fuente: Guía de programación de paquetes

En el caso de que no pueda acceder al documento, avíseme e incluiré algunas citas adicionales de la página.

    
respondido por el Monomeeth 11.04.2017 - 04:13
3

Como he creado una aplicación basada en documentos para macOS, puedo ayudarlo a comprender un poco. Aunque la respuesta de @Monomeeth es correcta, pero tratar con GUI es mucho mejor que Info.plist . La gente usualmente usa otro camino. Ellos subclase NSDocment , que proporciona la base para guardar y cargar archivos / paquetes. Luego, la gente va a Xcode y, bajo la pestaña "General", define un tipo de documento, luego ve a "UTI exportadas" y exporta una UTI que se ajusta a com.apple.package . Leen con la clase NSFileWrapper . De esta manera, la gente no tendrá que hacer un trabajo tedioso con cosas como NSData .

Si desea crear un paquete, marque esta respuesta . Simplemente cree una aplicación macOS vacía y edite las secciones "UTI exportadas" para probar.

    
respondido por el paper1111 11.04.2017 - 04:57

Lea otras preguntas en las etiquetas