O que é o formato de ficheiro BUNDLE?
.bundle é um formato de pacote de plug-in para macOS, desenvolvido pela Apple. Em vez de um arquivo único real, um .bundle é um pacote de diretório - uma pasta que o Finder apresenta como um item opaco, um conceito herdado do NeXTSTEP e formalizado no Mac OS X 10.0.
Arquivos com a extensão .bundle contêm código executável e recursos. Arquivos .bundle são usados como contêineres do macOS para a distribuição de:
- aplicativos,
- frameworks (plataformas de desenvolvimento e bibliotecas),
- plug-ins.
Os dados do .bundle são organizados de forma diferente dependendo do tipo de conteúdo que armazenam. O tipo de dados que um arquivo .bundle contém também determina como o Finder mostrará o arquivo. Plug-ins e aplicativos são exibidos como arquivos únicos que podem ser inspecionados usando o comando Mostrar Conteúdo do Pacote. Frameworks são exibidos como pastas de arquivos. Arquivos .bundle não devem ser abertos manualmente, independentemente do seu conteúdo.
Internamente, um .bundle segue o layout CFBundle: uma pasta Contents/ com um manifesto Info.plist (declarando CFBundlePackageType = BNDL), uma subpasta MacOS/ com o executável Mach-O e Resources/. Tipos relacionados incluem .app, .framework, .kext e .plugin.
Segurança e proteção
RISCO: MEDIUMUm .bundle contém código executável que um aplicativo hospedeiro carregará e executará, portanto, carrega as mesmas considerações de confiança que a instalação de qualquer plug-in: instale apenas bundles de fontes em que você confia e prefira os assinados/notarizados para que o macOS Gatekeeper possa verificá-los. Apenas navegar no conteúdo de um bundle no Finder é inofensivo; o risco está em carregar um plug-in não confiável em um aplicativo, que então executa seu código com os privilégios desse aplicativo.
Detalhes do formato
em resumo- Localidade I18n de Ruby/Rails ou gem .bundle (extensão compilada) - No macOS, uma extensão C do Ruby compilada é um bundle carregável Mach-O chamado *.bundle dentro de uma gem.
- Siemens NX / 'bundle' de dados de aplicativo genérico - Alguns aplicativos gravam um arquivo .bundle proprietário de arquivo único com configurações ou recursos agrupados.
Programas que abrem arquivos BUNDLE
Detalhes técnicos
especificação profunda| Tipo de formato | Pacote de diretório do macOS - uma pasta que o Finder apresenta como um único arquivo opaco |
| Desenvolvedor | Apple |
| Estrutura interna | Pasta `Contents/` com `Info.plist`, `MacOS/` (executável Mach-O), `Resources/` e subdiretórios opcionais `Frameworks/` e `PlugIns/` |
| Código de tipo de pacote | `BNDL` - definido como `CFBundlePackageType` no `Info.plist` |
| Formato executável | Binário Mach-O; magic bytes `FE ED FA CE` (32-bit BE), `CF FA ED FE` (64-bit LE) ou `CA FE BA BE` (binário universal/fat) |
| Manifesto de metadados | `Info.plist` - lista de propriedades XML ou binária declarando o identificador do bundle, versão, nome do executável e tipo de pacote |
| Tipo MIME | `application/octet-stream`; também relatado como `inode/directory` em sistemas POSIX |
| Contêiner de sistema de arquivos | Diretório HFS+ ou APFS com o bit de pacote definido; exibido como um item unificado no Finder |
| Assinatura de código | O executável Mach-O dentro do bundle pode ser assinado com `codesign`; exigido pelo Gatekeeper e notarização no macOS 10.15+ |
| Suporte de plataforma | macOS (principal); iOS e iPadOS (bundles carregáveis incorporados dentro de pacotes `.app`); originalmente NeXTSTEP |
| Tamanho de arquivo típico | De dezenas de KB a dezenas de MB, dependendo do código do plug-in e dos recursos incluídos |
| Codificação | Mista - executável Mach-O binário mais `Info.plist` em formato XML ou binário e arquivos de recursos de texto |
| Comportamento no Windows | O bundle copiado aparece como uma pasta comum; a semântica de pacote do macOS está ausente no Windows |
| Método de identificação | Identificado pelo sufixo de nome de diretório `.bundle` e presença de `Contents/Info.plist`; não existem magic bytes no nível do arquivo |
| Identificador do bundle | Cada `.bundle` carrega uma string `CFBundleIdentifier` em DNS reverso (ex: `com.example.plugin`) usada para unicidade e assinatura de código |
| Lançado | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| Versão mais recente | Modern Core Foundation / Foundation bundle layout (current macOS) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | developer.apple.com |
Conversões de BUNDLE
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos BUNDLE.