Co to jest format pliku BUNDLE?
.bundle to format pakietu wtyczek dla systemu macOS, opracowany przez firmę Apple. Zamiast prawdziwego pojedynczego pliku, .bundle jest pakietem katalogów - folderem, który Finder prezentuje jako jeden nieprzezroczysty element. Koncepcja ta została odziedziczona po systemie NeXTSTEP i sformalizowana w Mac OS X 10.0.
Pliki z rozszerzeniem .bundle zawierają kod wykonywalny i zasoby. Pliki .bundle są używane jako kontenery macOS do dystrybucji:
- aplikacji,
- frameworków (platform programistycznych i bibliotek),
- wtyczek.
Dane wewnątrz .bundle są zorganizowane różnie w zależności od rodzaju przechowywanej zawartości. Typ danych zawartych w pliku .bundle określa również sposób, w jaki Finder wyświetli plik. Wtyczki i aplikacje są wyświetlane jako pojedyncze pliki, które można sprawdzić za pomocą polecenia Pokaż zawartość pakietu. Frameworki są wyświetlane jako foldery plików. Plików .bundle nie należy otwierać ręcznie, niezależnie od ich zawartości.
Wewnętrznie .bundle jest zgodny z układem CFBundle: folder Contents/ z manifestem Info.plist (deklarującym CFBundlePackageType = BNDL), podfolder MacOS/ z plikiem wykonywalnym Mach-O oraz folder Resources/. Powiązane typy to .app, .framework, .kext i .plugin.
Bezpieczeństwo
RYZYKO: MEDIUMPlik .bundle zawiera kod wykonywalny, który aplikacja macierzysta ładuje i uruchamia, więc wiąże się z takimi samymi kwestiami zaufania, jak instalacja dowolnej wtyczki: instaluj pakiety tylko z zaufanych źródeł i preferuj te podpisane cyfrowo/notarialnie, aby macOS Gatekeeper mógł je zweryfikować. Samo przeglądanie zawartości pakietu w Finderze jest nieszkodliwe; ryzyko polega na załadowaniu niezaufanej wtyczki do aplikacji, która następnie uruchamia jej kod z uprawnieniami tej aplikacji.
Szczegóły formatu
w pigułce- Lokalizacja Ruby/Rails I18n lub gem .bundle (skompilowane rozszerzenie) - W systemie macOS skompilowane rozszerzenie C języka Ruby to ładowalny pakiet Mach-O o nazwie *.bundle wewnątrz gema.
- Siemens NX / ogólne dane aplikacji „bundle” - Kilka aplikacji zapisuje własnościowy, pojedynczy plik .bundle zawierający pogrupowane ustawienia lub zasoby.
Programy otwierające pliki BUNDLE
Szczegóły techniczne
specyfikacja| Typ formatu | Pakiet katalogów macOS - folder, który Finder prezentuje jako pojedynczy, nieprzezroczysty plik |
| Deweloper | Apple |
| Struktura wewnętrzna | Folder `Contents/` z `Info.plist`, `MacOS/` (plik wykonywalny Mach-O), `Resources/` oraz opcjonalne podkatalogi `Frameworks/` i `PlugIns/` |
| Kod typu pakietu | `BNDL` - ustawiony jako `CFBundlePackageType` w `Info.plist` |
| Format wykonywalny | Binarny Mach-O; magiczne bajty `FE ED FA CE` (32-bit BE), `CF FA ED FE` (64-bit LE) lub `CA FE BA BE` (universal/fat binary) |
| Manifest metadanych | `Info.plist` - XML lub binarna lista właściwości deklarująca identyfikator pakietu, wersję, nazwę pliku wykonywalnego i typ pakietu |
| Typ MIME | `application/octet-stream`; zgłaszany również jako `inode/directory` w systemach POSIX |
| Kontener systemu plików | Katalog HFS+ lub APFS z ustawionym bitem pakietu; wyświetlany jako jednolity element w Finderze |
| Podpisywanie kodu | Plik wykonywalny Mach-O wewnątrz pakietu może być podpisany za pomocą `codesign`; wymuszane przez Gatekeeper i notarialne potwierdzenie w macOS 10.15+ |
| Obsługa platform | macOS (główna); iOS i iPadOS (ładowalne pakiety osadzone wewnątrz pakietów `.app`); pierwotnie NeXTSTEP |
| Typowy rozmiar pliku | Od kilkunastu KB do kilkudziesięciu MB, w zależności od kodu wtyczki i dołączonych zasobów |
| Kodowanie | Mieszane - binarny plik wykonywalny Mach-O plus `Info.plist` w formacie XML lub binarnym oraz tekstowe pliki zasobów |
| Zachowanie w Windows | Skopiowany pakiet pojawia się jako zwykły folder; semantyka pakietów macOS nie występuje w systemie Windows |
| Metoda identyfikacji | Identyfikowany przez przyrostek nazwy katalogu `.bundle` oraz obecność `Contents/Info.plist`; nie istnieją magiczne bajty na poziomie pliku |
| Identyfikator pakietu | Każdy `.bundle` posiada ciąg `CFBundleIdentifier` w formacie odwróconego DNS (np. `com.example.plugin`), używany do unikalności i podpisywania kodu |
| Wydano | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| Najnowsza wersja | Modern Core Foundation / Foundation bundle layout (current macOS) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | developer.apple.com |
Konwersje BUNDLE
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki BUNDLE.