¿Qué es el formato de archivo BUNDLE?
.bundle es un formato de paquete de complementos para macOS, desarrollado por Apple. En lugar de ser un archivo único real, un .bundle es un paquete de directorio: una carpeta que el Finder presenta como un elemento opaco, un concepto heredado de NeXTSTEP y formalizado en Mac OS X 10.0.
Los archivos con la extensión .bundle contienen código ejecutable y recursos. Los archivos .bundle se utilizan como contenedores de macOS para la distribución de:
- aplicaciones,
- frameworks (plataformas de desarrollo y librerías),
- complementos (plug-ins).
Los datos de un .bundle se organizan de forma diferente según el tipo de contenido que almacene. El tipo de datos que contiene un archivo .bundle también determina cómo mostrará el archivo el Finder. Los complementos y las aplicaciones se muestran como archivos individuales que se pueden inspeccionar mediante el comando Mostrar contenido del paquete. Los frameworks se muestran como carpetas de archivos. Los archivos .bundle no deben abrirse manualmente independientemente de su contenido.
Internamente, un .bundle sigue el diseño CFBundle: una carpeta Contents/ con un manifiesto Info.plist (que declara CFBundlePackageType = BNDL), una subcarpeta MacOS/ con el ejecutable Mach-O y Resources/. Los tipos relacionados incluyen .app, .framework, .kext y .plugin.
Seguridad y protección
RIESGO: MEDIUMUn .bundle contiene código ejecutable que una aplicación anfitriona cargará y ejecutará, por lo que conlleva las mismas consideraciones de confianza que la instalación de cualquier complemento: instale solo bundles de fuentes en las que confíe y prefiera los firmados/notarizados para que macOS Gatekeeper pueda verificarlos. El simple hecho de explorar el contenido de un bundle en el Finder es inofensivo; el riesgo es cargar un complemento no confiable en una aplicación, que luego ejecuta su código con los privilegios de esa aplicación.
Detalles del formato
en pocas palabras- Localización I18n de Ruby/Rails o gema .bundle (extensión compilada) - En macOS, una extensión de C de Ruby compilada es un bundle cargable Mach-O llamado *.bundle dentro de una gema.
- Siemens NX / 'bundle' de datos de aplicación genérica - Un puñado de aplicaciones escriben un archivo único .bundle propietario de configuraciones o recursos agrupados.
Programas que abren archivos BUNDLE
Detalles técnicos
especificación profunda| Tipo de formato | Paquete de directorio de macOS: una carpeta que el Finder presenta como un único archivo opaco |
| Desarrollador | Apple |
| Estructura interna | Carpeta `Contents/` con `Info.plist`, `MacOS/` (ejecutable Mach-O), `Resources/`, y subdirectorios opcionales `Frameworks/` y `PlugIns/` |
| Código de tipo de paquete | `BNDL` - establecido como `CFBundlePackageType` en `Info.plist` |
| Formato ejecutable | Binario Mach-O; bytes mágicos `FE ED FA CE` (32-bit BE), `CF FA ED FE` (64-bit LE), o `CA FE BA BE` (binario universal/fat) |
| Manifiesto de metadatos | `Info.plist` - lista de propiedades XML o binaria que declara el identificador del bundle, la versión, el nombre del ejecutable y el tipo de paquete |
| Tipo MIME | `application/octet-stream`; también reportado como `inode/directory` en sistemas POSIX |
| Contenedor de sistema de archivos | Directorio HFS+ o APFS con el bit de paquete activado; se muestra como un elemento unificado en el Finder |
| Firma de código | El ejecutable Mach-O dentro del bundle puede firmarse con `codesign`; aplicado por Gatekeeper y notarización en macOS 10.15+ |
| Soporte de plataforma | macOS (principal); iOS y iPadOS (bundles cargables integrados dentro de paquetes `.app`); originalmente NeXTSTEP |
| Tamaño de archivo típico | De decenas de KB a decenas de MB, dependiendo del código del complemento y los recursos incluidos |
| Codificación | Mixta: ejecutable Mach-O binario más `Info.plist` en formato XML o binario y archivos de recursos de texto |
| Comportamiento en Windows | El bundle copiado aparece como una carpeta ordinaria; la semántica de paquetes de macOS está ausente en Windows |
| Método de identificación | Identificado por el sufijo de nombre de directorio `.bundle` y la presencia de `Contents/Info.plist`; no existen bytes mágicos a nivel de archivo |
| Identificador de bundle | Cada `.bundle` lleva una cadena `CFBundleIdentifier` de DNS inverso (p. ej., `com.example.plugin`) utilizada para unicidad y firma de código |
| Lanzado | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| Última versión | Modern Core Foundation / Foundation bundle layout (current macOS) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | developer.apple.com |
Conversiones de BUNDLE
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos BUNDLE.