| ファイル名拡張子 |
.app、.framework、.kext、.plugin、.docset、.xpc、.qlgenerator、.component、.saver、.mdimporter など。 |
|---|---|
| 統一型識別子 (UTI) | com.apple.bundle |
| コンテナ用 | 実行可能バイナリ、メタデータ、その他のバンドル、アプリケーションの実行に必要なその他のファイル。 |
NeXTSTEP、OPENSTEP、およびそれらの直系の子孫であるmacOS、iOS、iPadOS、tvOS、watchOS、visionOS 、およびGNUstepでは、バンドルは定義された構造とファイル拡張子を持つファイルディレクトリであり、関連するファイルを概念的に単一の項目としてグループ化できます。
実行可能コードを含むバンドルの例としては、アプリケーション、フレームワーク、プラグインなどがあります。この種類のバンドルには通常、実行可能コードを表す 1 つのファイルと、nib 、テンプレート、画像、サウンド、その他のメディアなどのリソースを表すファイルが含まれます。Microsoft Windowsなどの他のシステムでは、これらのリソースは通常、コンパイル時に実行可能ファイル自体に直接含まれます。古い Macintosh では、同様の手法が使用され、追加のメタデータをファイルのリソース フォークに追加できます。RISC OSおよびROX Desktopで使用されるアプリケーション ディレクトリの概念も同様です。
実行可能コードを含まないバンドルの例としては、ドキュメント パッケージ ( iWorkドキュメント) やメディア ライブラリ ( iPhotoライブラリ) などがあります。
バンドルは、 Cocoa、NeXTSTEP、GNUstep のFoundationNSBundleフレームワークでは クラスを使用してプログラム的にアクセスされ、Core Foundationではクラスを使用してプログラム的にアクセスされます。バンドルにはメタデータ用のInfo.plistファイルが含まれることがよくあります。[1] Apple バンドルの Uniform Type Identifier (UTI) は です。[ 2 ]CFBundlecom.apple.bundle
アプリケーションバンドル
| ファイル名拡張子 |
。アプリ |
|---|---|
| 統一型識別子 (UTI) | com.apple.アプリケーションバンドル |
| フォーマットの種類 | アプリケーションソフトウェア |
| コンテナ用 | 実行可能バイナリ |
| 延長 | バンドル |
アプリケーション バンドルはディレクトリ階層であり、最上位ディレクトリの名前は.app拡張子で終わります。
macOS アプリケーション バンドルでは、最上位ディレクトリの下のバンドルの最初のディレクトリは通常 という名前ですContents。Contentsその中には通常 という別のディレクトリがあり、MacOSそこにアプリケーションの実行可能コードが含まれています。Contentsフォルダには というファイルがありInfo.plist、その中にはソフトウェア ベンダーの名前、アプリケーションの実行可能ファイルとアイコンを含むファイルの名前、アプリケーションのバージョン、要求された権限などのアプリケーション情報が含まれています。フォルダ内にはContents通常 というディレクトリもありResources、その中にアプリケーションのリソースが含まれています。[3]
とりわけ、このResourcesフォルダーにはアプリケーションのnib ファイルのローカライズされたバージョンが含まれています。
その他の一般的なサブディレクトリにはPlugins、、、およびがあります。ディレクトリにはFrameworks、アプリケーションで使用されるフレームワークが含まれ、システムに別のバージョンのフレームワークが存在する場合でも使用されます。ディレクトリには、それらを含むアプリケーションと他のアプリケーションの両方で使用できるフレームワークが含まれます。これらは、システムの他の場所に新しいバージョンが存在しない場合にのみ使用されます。には、アプリケーションで使用される拡張可能なコードが含まれます。フォルダーには、パッケージが信頼できるパーティから提供され、改ざんされていないことを確認するためにシステムがパッケージを検証するために使用する情報が含まれます。
_CodeSignatureShared FrameworksFrameworksShared FrameworksPlugins_CodeSignature
デフォルトでは、Finder はアプリケーション バンドル (パッケージとも呼ばれる) を、基礎構造のない不透明なファイルとして表示します。バンドルの内容は、「パッケージの内容を表示」コンテキスト メニュー項目で表示できます。
GNUstepは、デフォルトではアプリケーション名をアプリケーションコードを含むフォルダ名として使用します。別の方法としては、コードが対象とするコンピュータアーキテクチャとOSで名前を付けてファットバイナリを形成し、アプリケーションを多くのプラットフォームで開くことができるようにする方法があります。[4] [5]
macOS フレームワークバンドル
| ファイル名拡張子 |
.フレームワーク |
|---|---|
| 統一型識別子 (UTI) | com.apple.framework |
| 延長 | バンドル |
macOS フレームワークもバンドルとして保存されます。[6]フレームワークバンドルの最上位ディレクトリの名前は、フレームワークの名前に拡張子 が続いたものです.framework。最上位ディレクトリにはVersionsディレクトリがあり、そのサブディレクトリにはフレームワークの 1 つ以上のバージョンが含まれます。各サブディレクトリにはフレームワークの動的ライブラリコードがフレームワークの名前と同じ名前のファイルに含まれ、フレームワークのヘッダーファイルHeadersを含むフォルダーや、 などの他のサブフォルダーが含まれる場合もあります。ディレクトリには、フレームワークの現在のバージョンの ディレクトリへのシンボリックリンクも含まれています。最上位ディレクトリには の内容へのシンボリックリンクがあります。[7]ResourcesVersionsCurrentVersions/Current
Finderは、フレームワーク バンドルを不透明なファイルではなくディレクトリとして表示します。
GNUstepはフレームワークを使用しますが、通常はバンドルとして保存されません。これは、フレームワークの読み込みの完全なセマンティクスが他のプラットフォームとはあまりにも異質であると考えられるためです。[8]
ロード可能なバンドル
ローダブルバンドルは、実行時に読み込むことができるコードを含むバンドルです。[9]ローダブルバンドルは通常、拡張子が で.bundle、プラグインとして使用されることが多いです。macOSでは、バンドルをサポートしていないアプリケーションでもバンドルを読み込む方法があり、Safari [10]やApple Mail [11] などの一般的なアプリケーションをサードパーティでハッキングすることができます。[ 12] NeXTSTEPから継承された機能であるGNUstepに-[NSBundle principalClass]も インターフェースがあります。
デフォルトでは、Finder は読み込み可能なバンドル (パッケージとも呼ばれる) を、基礎構造のない不透明なファイルとして表示します。バンドルの内容は、「パッケージの内容を表示」コンテキスト メニュー項目で表示できます。
その他のバンドル形式
独自のカスタム バンドル形式を利用する macOS アプリケーションは多数あります (例: CandyBar .iContainer、Aperture .aplibrary、VMware Fusion .vmwarevmなど)。
.lproj
.lprojファイルは、OpenStep、macOS、または GNUstep ソフトウェアのローカリゼーションファイルを含むバンドルです。通常.nib、特定の言語のファイルと.strings、必要に応じてファイルや画像 ( ReadMeやライセンス ファイルなど) が含まれます。これらのローカライズされたファイルは、インストーラー メーカーがインストール パッケージをカスタマイズするために使用されます。また、アプリケーション バンドルにも含まれています。
参照
- アプリケーション ディレクトリ— RISC OSにおけるアプリケーション バンドルの類似物
- AppImage — 同様の原理を利用するLinuxアプリケーション
- アプリ- 同様の原理を利用したHarmonyOSアプリケーション
- リッチテキストフォーマットディレクトリ- Appleのバンドルを使用したRTF拡張機能
参考文献
- ^ 「情報プロパティ リスト - バンドル リソース」。Apple開発者向けドキュメント。
- ^ 「システム宣言された Uniform Type Identifiers」。Uniform Type Identifiers リファレンス。Apple Inc. 2012 年 6 月 10 日閲覧。
- ^ 「バンドル構造」。バンドル プログラミング ガイド。Apple Inc. 2017-03-27。アプリケーション バンドル。
- ^ 「PackagingDrafts/GNUstep」。Fedoraプロジェクト Wiki。
- ^ 「gnustep/tools-make: README.Packaging」。GitHub 。 2021年12月5日。
- ^ “Framework”. developer.apple.com . 2020年10月6日閲覧。
- ^ 「バンドル構造」。バンドル プログラミング ガイド。Apple Inc. 2017-03-27。フレームワーク バンドルの構造。
- ^ 「ユーザー FAQ」. GNUstep .
- ^ Cocoa のコード読み込みプログラミングトピック: 読み込み可能なバンドルについて
- ^ 「Pimp My Safari: プラグイン」。2007年10月31日時点のオリジナルよりアーカイブ。
- ^ 「Apple Mail プラグインとツール」。2009 年 3 月 8 日時点のオリジナルよりアーカイブ。2007 年 11 月 4 日閲覧。
- ^ 「Hawk Wings — Apple Mail 用プラグイン」。2007 年 8 月 31 日時点のオリジナルよりアーカイブ。
外部リンク
- Apple Developer Connection のバンドル プログラミング ガイド
- GNUstep プロジェクトの NSBundle ドキュメント
- Platypus — スクリプトを中心としたアプリケーションバンドルを作成するツール
- ファイル拡張子の詳細
