La anatomía de los paquetes de aplicaciones de macOS

¿Qué hay dentro de una aplicación macOS y qué hace? Las aplicaciones de macOS parecen archivos monolíticos, pero son más como carpetas con elegantes íconos llamados paquetes. Abra esos paquetes y encontrará una serie de archivos requeridos por la aplicación. ¿Qué hace todo esto? La comprensión de estos paquetes es útil para desarrolladores, administradores, modders de juegos, constructores de Hackintosh, usuarios preocupados por la seguridad y cualquier persona que solucione problemas de una aplicación.

¿Qué son los paquetes de aplicaciones macOS?

Como definido por Apple, un paquete es “un directorio con una estructura jerárquica estandarizada que contiene el código ejecutable y los recursos utilizados por ese código”. Por otro nombre, es una aplicación. Hay una estructura y un formato específicos que los desarrolladores deben cumplir para garantizar que su aplicación se ejecute correctamente. Rompe esas convenciones y probablemente romperás tu aplicación. Si algo no funciona bien, un paquete de aplicaciones puede ser una ubicación útil para la solución de problemas.

Las aplicaciones no son el único tipo de paquetes. Los paquetes también se utilizan para archivos con extensiones como .framework, .haz, .plugin y .kext. Los paquetes se muestran como objetos unitarios en Finder hasta que entras en ellos abriendo el paquete del paquete.

Abrir paquetes de aplicaciones

A diferencia de los directorios, los paquetes de aplicaciones requieren un breve baile para abrirse.

1. Haga clic con el botón derecho en el icono de la aplicación en “/ Aplicaciones /”.

2. En el menú contextual, haga clic en “Mostrar contenido del paquete”.

Los paquetes de aplicaciones de Macos muestran el contenido del paquete

3. Haga doble clic en la carpeta “Contenido” para ingresar al directorio principal de la aplicación.

Anatomía básica del paquete de aplicaciones macOS

Dentro de la carpeta “Contenido” del paquete, encontrará varios archivos. Todas las aplicaciones de macOS deben contener los siguientes archivos como mínimo:

  • Info.plist: incluye detalles de configuración obligatorios junto con las cadenas de identificación de la aplicación.
  • MacOS / ejecutable: el código que se ejecuta cuando el usuario inicia la aplicación que se encuentra dentro de la carpeta “MacOS”. Sin un ejecutable, no tiene mucho paquete.
Aplicación Macos App Bundle Anatomy en Finder 2x

También es probable que encuentre una gran cantidad de archivos adicionales en algunas carpetas comunes:

  • Complementos: mini-ejecutables similares a extensiones que amplían la funcionalidad del ejecutable principal. A diferencia de los recursos estáticos, los complementos agregan funcionalidades dinámicamente a la aplicación.
  • Recursos: archivos de soporte en los que se basa su aplicación. Esta carpeta incluye, pero no se limita a, imágenes, iconos, sonidos, fuentes, archivos de plumilla, localizaciones y almacenes de datos. A diferencia de los complementos, estos recursos admiten la funcionalidad principal del ejecutable.
  • Frameworks: al igual que los complementos, los marcos de alto nivel requeridos por su aplicación son paquetes propios. Sin embargo, emplean una estructura jerárquica diferente.
  • Código Firma: un archivo plist estructurado que se utiliza para proporcionar una firma de código para cada parte de la aplicación. Estas firmas permiten que la aplicación y macOS verifiquen la integridad de la aplicación y eviten ataques de secuestro de aplicaciones.

Paquetes de aplicaciones iOS utilizan la misma estructura básica y formato de archivo, aunque a menudo aparecen en una jerarquía diferente.

Info.plist

Macos App Bundles Info Plist Xcode

Info.plist es el resumen principal de los datos demográficos básicos de su aplicación. Esto incluye su identificador de paquete, que debe ser único de todos los demás identificadores de paquete. Para simplificar este proceso, Apple recomienda la notación de dominio inverso, como “com.apple.siri.launcher” u “org.videolan.vlc”. Para obtener más información sobre Info.plist, consulte Lista de claves de Apple y considere lo que hace cada tecla.

Este archivo también contiene información básica de la aplicación, como el icono de la aplicación, el nombre de la aplicación, el número de versión, los datos de derechos de autor, los enlaces para informes de errores y el idioma predeterminado. Por convención y reglas del sistema, la “I” en “Información” siempre está en mayúscula.

Ejecutable

Aquí es donde vive el código principal de su aplicación. Cuando se abre la aplicación, macOS ejecutará el código contenido en el ejecutable que se encuentra en el directorio “MacOS” del paquete. Casi todas las aplicaciones solo tendrán un ejecutable, aunque se pueden usar dos o más para ejecutables auxiliares. Este archivo no suele interesar a nadie, excepto al desarrollador del software, ya que el usuario no puede verlo ni editarlo fácilmente.

Recursos y archivos de soporte adicionales

Todo lo esencial para su aplicación debe incluirse en su paquete. Si no forma parte del ejecutable en sí, debería ir en una de las carpetas de recursos dentro del paquete. Estos recursos pueden almacenarse en la carpeta principal “Recursos” o subdividirse en diferentes carpetas.

  • En caso de duda, la mayoría de los recursos se encuentran en la carpeta “Recursos”.
  • Los marcos van en la carpeta “Marcos”.
  • Los complementos van en la carpeta “Complementos”.
  • Los archivos de localización (directorios .lproj) van en la carpeta Recursos.

Fuera de esos requisitos, Apple proporciona muchas sugerencias y convenciones que deben seguirse a menos que tenga una razón defendible para hacer lo contrario.

Conclusión

Las aplicaciones macOS están contenidas en paquetes, que son contenedores jerárquicos para archivos de aplicaciones. La estructura básica es la misma para todas las aplicaciones. Los archivos más interesantes para el usuario se encuentran en la carpeta Recursos dentro del paquete de la aplicación.

¿Es útil este artículo?

¡Compártelo en tus redes!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *