stringtranslate.com

Paquete (macOS)

En NeXTSTEP , OPENSTEP y sus descendientes lineales macOS , iOS , iPadOS , tvOS y watchOS , y en GNUstep , un paquete es un directorio de archivos con una estructura y una extensión de archivo definidas, lo que permite que los archivos relacionados se agrupen como un elemento conceptualmente único.

Ejemplos de paquetes que contienen código ejecutable incluyen aplicaciones , marcos y complementos . Este tipo de paquete generalmente contiene un archivo que representa código ejecutable y archivos que representan recursos como nibs , plantillas, imágenes, sonidos y otros medios. En algunos otros sistemas, como Microsoft Windows , estos recursos generalmente se incluyen directamente en el archivo ejecutable en el momento de la compilación. En Macintosh más antiguos, se utiliza una técnica similar, donde se pueden agregar metadatos adicionales al recurso fork de un archivo . Similares en concepto son los directorios de aplicación utilizados en RISC OS y en ROX Desktop .

Algunos ejemplos de paquetes que no contienen código ejecutable incluyen paquetes de documentos ( documentos de iWork ) y bibliotecas multimedia ( biblioteca de iPhoto ).

Se accede a los paquetes mediante programación con la NSBundleclase en los marcos de trabajo de Cocoa , NeXTSTEP y Foundation de GNUstep , y con CFBundleen Core Foundation . Los paquetes suelen incluir un archivo Info. plist para metadatos. [1] El Identificador de tipo uniforme (UTI) para un paquete de Apple es . [2]com.apple.bundle

Paquetes de aplicaciones

Los paquetes de aplicaciones son jerarquías de directorios, donde el directorio de nivel superior tiene un nombre que termina con una .appextensión.

En un paquete de aplicaciones de macOS, el primer directorio del paquete debajo del directorio de nivel superior suele llamarse Contents. Dentro Contentssuele haber otro directorio, llamado MacOS, que contiene el código ejecutable de la aplicación. La Contentscarpeta contiene un archivo llamado Info.plist, que contiene información de la aplicación, como el nombre del proveedor del software, el nombre de los archivos que contienen el ejecutable y el icono de la aplicación, la versión de la aplicación, los permisos solicitados, etc. Dentro de la Contentscarpeta suele haber también un directorio llamado Resources, que contiene los recursos de la aplicación. [3]

Entre otras cosas, la carpeta contiene versiones localizadas de los archivos nibResources de la aplicación .

Otros subdirectorios comunes son Plugins, Frameworks, _CodeSignaturey Shared Frameworks. El Frameworksdirectorio contiene los marcos que utiliza la aplicación y se utilizan incluso si existe otra versión del marco en el sistema. El directorio Shared Frameworkscontiene marcos que pueden ser utilizados tanto por la aplicación que los contiene como por otras aplicaciones; se utilizan solo si no existe una versión más reciente en otra parte del sistema. Pluginscontiene código extensible utilizado por la aplicación. La _CodeSignaturecarpeta contiene información utilizada por el sistema para validar que el paquete se origina de una parte confiable y no ha sido alterado.

De forma predeterminada, el Finder muestra los paquetes de aplicaciones, también denominados paquetes , como archivos opacos sin estructura subyacente; el contenido del paquete se puede mostrar con el elemento del menú contextual "Mostrar contenido del paquete" .

GNUstep utiliza por defecto el nombre de la aplicación para nombrar la carpeta que contiene el código de la aplicación. Una alternativa es nombrarlos por la arquitectura de la computadora y el sistema operativo para el que está destinado el código para formar un binario grueso , de modo que la aplicación pueda abrirse en muchas plataformas. [4] [5]

Paquetes de frameworks de macOS

Los frameworks de macOS también se almacenan como paquetes; [6] el directorio de nivel superior de un paquete de framework tiene un nombre que es el nombre del framework seguido de la extensión .framework. En el directorio de nivel superior hay un Versionsdirectorio, con subdirectorios para una o más versiones del framework, cada subdirectorio contiene el código de la biblioteca dinámica para el framework, en un archivo cuyo nombre es el mismo que el nombre del framework, posiblemente con una Headerscarpeta que contiene archivos de encabezado para el framework, y otras subcarpetas como Resources. El Versionsdirectorio también contiene un enlace simbólico Currental directorio de la versión actual del framework. En el directorio de nivel superior hay enlaces simbólicos al contenido de Versions/Current. [7]

El Finder muestra los paquetes de frameworks como directorios en lugar de archivos opacos.

Aunque GNUstep utiliza frameworks, normalmente no se almacenan como paquetes, ya que la semántica completa de la carga de frameworks se considera demasiado ajena a otras plataformas. [8]

Paquetes cargables

Los paquetes cargables son paquetes que contienen código que se puede cargar en tiempo de ejecución. [9] Los paquetes cargables suelen tener la extensión .bundley se utilizan con mayor frecuencia como complementos . En macOS, hay una forma de cargar paquetes incluso en aplicaciones que no los admiten, lo que permite hacks de terceros para aplicaciones populares, como Safari [10] y Apple Mail . [11] [12] Una característica heredada de NeXTSTEP, GNUstep -[NSBundle principalClass]también tiene la interfaz.

De forma predeterminada, el Finder muestra los paquetes cargables, también denominados paquetes , como archivos opacos sin estructura subyacente; el contenido del paquete se puede mostrar con el elemento del menú contextual "Mostrar contenido del paquete" .

Otros formatos de paquetes

Hay muchas aplicaciones de macOS que utilizan su propio formato de paquete personalizado (por ejemplo, CandyBar .iContainer , Aperture .aplibrary , VMware Fusion .vmwarevm , etc.).

.lproj

Un archivo .lproj es un paquete que contiene archivos de localización para software OpenStep, macOS o GNUstep. Normalmente, contiene los .nibarchivos para un idioma determinado junto con .stringsarchivos e imágenes, si es necesario (por ejemplo, archivos ReadMe o de licencia). Los creadores de instaladores utilizan estos archivos localizados para personalizar los paquetes de instalación. También se incluyen en un paquete de aplicaciones.

Véase también

Referencias

  1. ^ "Lista de propiedades de información - Recursos del paquete". Documentación para desarrolladores de Apple .
  2. ^ "Identificadores de tipo uniforme declarados por el sistema". Referencia de identificadores de tipo uniforme . Apple Inc. Consultado el 10 de junio de 2012 .
  3. ^ "Estructuras de paquetes". Guía de programación de paquetes . Apple Inc. 27 de marzo de 2017. Paquetes de aplicaciones.
  4. ^ "PackagingDrafts/GNUstep". Wiki del proyecto Fedora .
  5. ^ "gnustep/tools-make: README.Packaging". GitHub . 5 de diciembre de 2021.
  6. ^ "Marco de trabajo". developer.apple.com . Consultado el 6 de octubre de 2020 .
  7. ^ "Estructuras de paquetes". Guía de programación de paquetes . Apple Inc. 27 de marzo de 2017. Anatomía de un paquete de framework.
  8. ^ "Preguntas frecuentes de los usuarios". GNUstep .
  9. ^ Temas de programación de carga de código para Cocoa: Acerca de los paquetes cargables
  10. ^ "Pimp My Safari: complementos". Archivado desde el original el 31 de octubre de 2007.
  11. ^ "Complementos y herramientas de Apple Mail". Archivado desde el original el 8 de marzo de 2009. Consultado el 4 de noviembre de 2007 .
  12. ^ "Hawk Wings: complementos para Apple Mail". Archivado desde el original el 31 de agosto de 2007.

Enlaces externos