PLIST ファイル形式とは?
.plist 形式のファイルは、macOS 環境の多くのプログラムの構成情報やプロパティ情報を保存する設定ファイルです。これらは 環境設定ファイル とも呼ばれます。.plist ファイルは多くの場合、ユーザー設定やアプリケーションデータ を保存しており、macOS、iOS、iPadOS、およびその他の Apple プラットフォーム全体で使用される Apple の Core Foundation システムの標準的な要素です。
.plist ファイルは、テキストまたはバイナリの 2 つの方法で保存できます。テキスト形式は XML を使用しており、ファイルの内容を整理された人間が読める状態に保ちます。テキストとして保存されたファイルは、任意のテキストエディタを使用して表示および編集できますが、Xcode 内蔵の Property List エディタなどの専用プログラムを使用すると編集が容易になります。バイナリ形式(ファイルの先頭にあるマジックバイト bplist00 で識別されます)はよりコンパクトで、通常はオペレーティングシステム自体によって書き込まれます。
.plist ファイルは、コマンドラインと plutil コマンドを使用して、テキスト形式とバイナリ形式の間で簡単に変換できます。変換コマンドは以下の通りです:
- バイナリ形式から XML へ:
plutil -convert xml1 file.plist - XML 形式からバイナリへ:
plutil -convert binary1 file.plist
アプリの主要なプロパティリストの慣習的な名前は Info.plist です。.plist ファイル内のキー名は、システムによって読み取られる際に大文字と小文字を区別するため、常に注意が必要です。関連する形式には、デバイス構成プロファイル用の .mobileconfig や、ローカライズデータ用の .strings があります。
セキュリティと安全性
リスク: LOWPlist はデータであり実行コードではないため、それ自体で何かを実行することはありません。現実的なリスクはマルウェアではなく「破損」です。アプリの環境設定や Info.plist を手動で編集し、型やキーを間違えると、アプリが起動しなくなったり正しく動作しなくなったりする可能性があります。編集前にファイルをバックアップしてください。また、macOS では実行中の環境設定 plist を直接編集するよりも «defaults» コマンドを使用することをお勧めします(cfprefsd が手動の変更を上書きする可能性があるため)。構成プロファイル(.mobileconfig)内の plist はデバイスのセキュリティ設定を変更できるため、信頼できるソースからのプロファイルのみをインストールしてください。
形式の詳細
概要PLIST ファイルを開くプログラム
技術的詳細
詳細仕様| 形式のバリエーション | XML(テキストベース)とバイナリ(`bplist`)の 2 つのエンコーディングが `.plist` 拡張子を共有しています。 |
| バイナリマジックバイト | オフセット 0 に `bplist00`(8バイト、ASCII)。XML バリアントには存在しません。 |
| MIME タイプ | `application/x-plist` |
| XML ルート要素 | `<!DOCTYPE plist ...>` 宣言に続く `<plist version="1.0">` |
| スカラーデータ型 | `string`、`integer`、`real`、`true`/`false`(ブール値)、`date`(ISO 8601)、`data`(生バイト) |
| コレクション型 | `array`(順序付きリスト)と `dict`(キーと値のマップ)。どちらも任意のネストをサポートします。 |
| バイナリ形式の構造 | オブジェクトテーブル + オフセットテーブル + 固定 32 バイトのトレイラー。トレイラーにはオブジェクト数とオフセットテーブルの位置が記録されます。 |
| Base64 エンコーディング | XML の `<data>` 要素はバイナリデータを Base64 としてエンコードします。バイナリ形式は生バイトを直接保存します。 |
| テキストエンコーディング(XML 形式) | UTF-8(デフォルト)または BOM 付きの UTF-16。XML 処理命令で宣言されます。 |
| キーの大文字・小文字の区別 | 辞書のキー名は大文字と小文字を区別します。`CFBundleIdentifier` と `cfbundleidentifier` は別のキーとして扱われます。 |
| 一般的な場所(macOS) | アプリバンドル(`Info.plist`)、ユーザー設定(`~/Library/Preferences/`)、起動デーモン、システム構成 |
| 変換ツール | `plutil`(macOS 内蔵)。コマンドラインから `.plist` ファイルの検証、変換、修正を行います。 |
| レガシー ASCII 形式 | `{` / `(` を区切り文字として使用する第 3 の NeXTSTEP ASCII 構文が存在します。macOS はこれを解析できますが、現在生成されることは稀です。 |
| エンタイトルメントでの使用 | `.plist` 構造は、コード署名時にサンドボックスや機能の権限を宣言する `.entitlements` ファイルに再利用されます。 |
| iOS/iPadOS の要件 | すべての iOS および iPadOS アプリバンドルには、バンドル ID、表示名、デバイス機能、プライバシー使用状況文字列を宣言する `Info.plist` が必要です。 |
| リリース日 | NeXTSTEP (late 1980s); current XML/binary forms with Mac OS X 10.0 (2001) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | developer.apple.com |
PLIST の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PLIST ファイルについて最初の質問をしてみましょう。