BUNDLE ファイル形式とは?
.bundle は、Appleによって開発されたmacOS用の プラグイン・バンドル形式 です。実体は単一のファイルではなく、ディレクトリ・パッケージ です。これはFinderが不透明な1つのアイテムとして提示するフォルダであり、NeXTSTEPから継承され、Mac OS X 10.0で正式に採用された概念です。
.bundle 拡張子を持つファイルには、実行コードとリソースが含まれています。.bundle ファイルは、以下の配布用macOSコンテナとして使用されます:
- アプリケーション
- フレームワーク(開発プラットフォームおよびライブラリ)
- プラグイン
.bundle のデータは、格納されているコンテンツの種類によって構成が異なります。また、.bundle ファイルに含まれるデータの種類によって、Finderでの表示方法も決まります。プラグインやアプリケーションは、«パッケージの内容を表示» コマンドを使用して検査できる単一のファイルとして表示されます。フレームワークはファイルフォルダとして表示されます。.bundle ファイルは、その内容に関わらず手動で開くべきではありません。
内部的には、.bundle はCFBundleレイアウトに従います:Contents/ フォルダ内に Info.plist マニフェスト(CFBundlePackageType = BNDL を宣言)、Mach-O実行ファイルを含む MacOS/ サブフォルダ、および Resources/ が配置されます。関連する形式には .app、.framework、.kext、.plugin があります。
セキュリティと安全性
リスク: MEDIUM.bundle にはホストアプリが読み込んで実行する実行コードが含まれているため、プラグインをインストールする際と同様の信頼性の検討が必要です。信頼できるソースからのバンドルのみをインストールし、macOS Gatekeeper が検証できるコード署名/公証済みのものを優先してください。Finderでバンドルの内容を閲覧するだけであれば無害です。リスクは、信頼できないプラグインをアプリに読み込ませることにあり、その場合、そのアプリの権限でコードが実行されます。
形式の詳細
概要- Ruby/Rails I18n ロケールまたは gem .bundle(コンパイル済み拡張) - macOSでは、コンパイルされた Ruby C 拡張は gem 内にある *.bundle という名前の Mach-O ロード可能バンドルです。
- Siemens NX / 一般的なアプリケーションデータ «bundle» - 一部のアプリは、設定やアセットをグループ化した独自の単一ファイル .bundle を作成します。
BUNDLE ファイルを開くプログラム
技術的詳細
詳細仕様| フォーマットタイプ | macOSディレクトリ・パッケージ - Finderが単一の不透明なファイルとして提示するフォルダ |
| 開発者 | Apple |
| 内部構造 | `Contents/` フォルダ(`Info.plist` を含む)、`MacOS/`(Mach-O実行ファイル)、`Resources/`、およびオプションの `Frameworks/` と `PlugIns/` サブディレクトリ |
| パッケージタイプコード | `BNDL` - `Info.plist` 内で `CFBundlePackageType` として設定 |
| 実行形式 | Mach-Oバイナリ。マジックバイト `FE ED FA CE` (32-bit BE)、`CF FA ED FE` (64-bit LE)、または `CA FE BA BE` (ユニバーサル/ファットバイナリ) |
| メタデータ・マニフェスト | `Info.plist` - バンドル識別子、バージョン、実行ファイル名、パッケージタイプを宣言するXMLまたはバイナリ形式のプロパティリスト |
| MIMEタイプ | `application/octet-stream`。POSIXシステムでは `inode/directory` としても報告される |
| ファイルシステム・コンテナ | パッケージビットが設定された HFS+ または APFS ディレクトリ。Finderでは統合されたアイテムとして表示される |
| コード署名 | バンドル内の Mach-O 実行ファイルは `codesign` で署名可能。macOS 10.15以降では Gatekeeper と公証によって強制される |
| プラットフォーム・サポート | macOS(主要)、iOS および iPadOS(`.app` パッケージ内に埋め込まれたロード可能なバンドル)、元々は NeXTSTEP |
| 典型的なファイルサイズ | プラグインのコードと同梱されるリソースに応じて、数十KBから数十MB |
| エンコーディング | 混合 - バイナリ Mach-O 実行ファイル、XMLまたはバイナリ形式の `Info.plist`、およびテキストリソースファイル |
| Windowsでの動作 | コピーされたバンドルは通常のフォルダとして表示される。WindowsにはmacOSのパッケージセマンティクスが存在しないため |
| 識別方法 | `.bundle` ディレクトリ名のサフィックスと `Contents/Info.plist` の存在によって識別される。ファイルレベルのマジックバイトは存在しない |
| バンドル識別子 | すべての `.bundle` は、一意性の確保とコード署名に使用される逆ドメイン名形式の `CFBundleIdentifier` 文字列(例:`com.example.plugin`)を持つ |
| リリース日 | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| 最新バージョン | Modern Core Foundation / Foundation bundle layout (current macOS) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | developer.apple.com |
BUNDLE の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。BUNDLE ファイルについて最初の質問をしてみましょう。