macOSアプリバンドルの構造
macOSアプリの内部には何があり、それは何をしますか? macOSアプリはモノリシックファイルのように見えますが、バンドルと呼ばれる派手なアイコンが付いたフォルダのようなものです。これらのバンドルを開くと、アプリケーションに必要な一連のファイルが見つかります。これはすべて何をしますか?これらのバンドルを理解することは、開発者、管理者、ゲームモッダー、Hackintoshビルダー、セキュリティに関心のあるユーザー、およびアプリのトラブルシューティングを行うすべての人に役立ちます。
macOSアプリバンドルとは何ですか?
Appleによって定義されているように、バンドルは「実行可能コードとそのコードで使用されるリソースを保持する標準化された階層構造を持つディレクトリ」です。別の名前で言えば、それはアプリケーションです。アプリが適切に実行されるようにするために、開発者が順守する必要のある特定の構造と形式があります。これらの慣習を破ると、アプリが破られる可能性があります。何かが正しく機能していない場合は、アプリケーションバンドルがトラブルシューティングの場所として役立つ可能性があります。
バンドルの種類はアプリだけではありません。バンドルは、.framework、.bundle、.plugin、.kextなどの拡張子を持つファイルにも使用されます。バンドルは、バンドルのパッケージを開いてステップインするまで、Finderで単一オブジェクトとして表示されます。
アプリケーションバンドルを開く
ディレクトリとは異なり、アプリケーションバンドルを開くには短いダンスが必要です。
1.「/Applications/」にあるアプリケーションのアイコンを右クリックします。
2.コンテキストメニューで、[パッケージの内容を表示]をクリックします。
3.「コンテンツ」フォルダをダブルクリックして、アプリのプライマリディレクトリに入ります。
基本的なmacOSアプリバンドルの構造
バンドルの「コンテンツ」フォルダ内には、多数のファイルがあります。すべてのmacOSアプリには、少なくとも次のファイルが含まれている必要があります。
- Info.plist :必須の構成の詳細とアプリケーション識別子の文字列が含まれます。
- MacOS/実行可能ファイル :ユーザーが「MacOS」フォルダー内にあるアプリを起動したときに実行されるコード。実行可能ファイルがないと、バンドルはあまりありません。
また、いくつかの一般的なフォルダに多数の追加ファイルが含まれている可能性があります。
- プラグイン :コア実行可能ファイルの機能を拡張する拡張機能のようなミニ実行可能ファイル。静的リソースとは異なり、プラグインはアプリケーションに機能を動的に追加します。
- リソース :アプリケーションが依存するサポートファイル。このフォルダには、画像、アイコン、サウンド、フォント、ペン先ファイル、ローカリゼーション、およびデータストアが含まれますが、これらに限定されません。プラグインとは異なり、これらのリソースは実行可能ファイルのコア機能をサポートします。
- フレームワーク :プラグインと同様に、アプリに必要な高レベルのフレームワークは独自のバンドルです。ただし、それらは階層的な異なる構造を採用しています。
- CodeSignature :アプリケーションの各部分にコード署名を提供するために使用される構造化されたplistファイル。これらの署名により、アプリとmacOSはアプリケーションの整合性を検証し、アプリのハイジャック攻撃を防ぐことができます。
iOSアプリバンドルは同じ基本構造とファイル形式を使用しますが、多くの場合、異なる階層で表示されます。
Info.plist
Info.plistは、アプリケーションの基本的な人口統計の主要なダイジェストです。これにはバンドル識別子が含まれ、他のすべてのバンドル識別子とは一意である必要があります。このプロセスを簡素化するために、Appleは「com.apple.siri.launcher」や「org.videolan.vlc」などの逆ドメイン表記を推奨しています。 Info.plistの詳細については、Appleのキーのリストを確認し、各キーの機能を検討してください。
このファイルには、アプリアイコン、アプリ名、バージョン番号、著作権データ、エラー報告用のリンク、デフォルトの言語などの基本的なアプリ情報も含まれています。慣例およびシステム規則により、「情報」の「I」は常に大文字になります。
実行可能ファイル
これは、アプリケーションのプライマリコードが存在する場所です。アプリケーションを開くと、macOSはバンドルの「MacOS」ディレクトリにある実行可能ファイルに含まれているコードを実行します。ヘルパー実行可能ファイルには2つ以上を使用できますが、ほぼすべてのアプリケーションには1つの実行可能ファイルしかありません。このファイルは、ユーザーが簡単に表示または編集できないため、通常、ソフトウェアの開発者以外には興味がありません。
リソースと追加のサポートファイル
アプリケーションに不可欠なものはすべて、そのバンドルに含まれている必要があります。実行可能ファイル自体の一部ではない場合は、バンドル内のリソースフォルダーの1つに配置する必要があります。これらのリソースは、プライマリの「リソース」フォルダに保存することも、別のフォルダに分割することもできます。
- 疑問がある場合、ほとんどのリソースは「リソース」フォルダにあります。
- フレームワークは「Frameworks」フォルダに移動します。
- プラグインは「プラグイン」フォルダに移動します。
- ローカリゼーションファイル(.lprojディレクトリ)はResourcesフォルダにあります。
これらの要件以外に、Appleは、正当な理由がない限り従うべき多くの提案と規則を提供しています。
結論
macOSアプリケーションは、アプリケーションファイルの階層コンテナであるバンドルに含まれています。基本的な構造は、すべてのアプリケーションで同じです。ユーザーにとって最も興味深いファイルは、アプリのバンドル内のResourcesフォルダーにあります。
-
macOS の Safari に最適な広告ブロッカー
最近の Web の閲覧は、悲惨な経験になる可能性があります。 最新のスポーツ ニュースを読んだり、昨夜のサタデー ナイト ライブのスキットを見たりしたいだけなのに、ホテルの予約、衣料品、自動車、さらにはさらに悪いことを売り込む容赦ない広告が殺到しています。 場合によっては、広告が気まずくなったり、消費しようとしているコンテンツを覆い隠したりすることがあります。 広告ブロッカーについてご存知かもしれませんが、Macintosh コンピューターで Safari を使用している場合、どの広告ブロック ソリューションが最適ですか? お金を払っても構わないと思っているなら、1Blocker をお
-
MacOS でファイルのパスを明らかにする 5 つの方法
Mac にファイルを作成またはコピーすると、Mac 上のファイルの実際の場所であるパスが割り当てられます。パスは、マシンに保存されているファイルの完全なアドレスを表すため、マシン上の任意のフォルダーまたはファイルに簡単にアクセスできます。 さまざまな理由で、Mac 上のファイルのパスを明らかにしたい場合があります。ファイル パスを入力として受け取るプログラムを作成している可能性があります。または、Mac にアプリをインストールしていて、ファイルのパスを入力するように求められる場合もあります。 ファイルのパスを公開する理由に関係なく、マシンで公開する方法はいくつかあります。 macOS に