Plist ビューア(バイナリ・XML)
プロパティリストは macOS と iOS がほとんどすべてを保存する方法です。アプリの環境設定、Info.plist、構成プロファイル、バックアップのマニフェスト。半分はエディタで読める XML ですが、残り半分は bplist という文字で始まるバイトの壁として開く Apple のバイナリ形式です。 このツールは両方を読みます。バイナリは文字列を拾い集めるのではなく正しく復号します。ファイル末尾の 32 バイトのトレーラがオフセットと参照の整数幅、そしてオブジェクトテーブルの位置を示し、すべての値はそのテーブル経由で到達します。ヘッダから前へ辿るだけでは何も読めないということです。1・2・4・8 バイトの整数、浮動小数点数、Apple 独自のエポックによる日付、生データ、UID、配列、集合、辞書がすべて型を保ったまま返ります。 結果はツリーで表示し、JSON と XML plist としても提供します。編集できなかったバイナリファイルが編集できる形になるわけです。ファイルが NSKeyedArchiver のアーカイブ——UID 参照でつながれた平坦なオブジェクト表で、iOS が少しでも複雑なものを保存するときに書く形式——だと分かればそう伝えます。中身がアプリの保存構造とまるで違って見える理由がそれだからです。アップロードはされません。
使い方
- .plist や .mobileconfig ファイルをドロップするか、XML plist を貼り付けます。
- 形式は自動判定され、バイナリならオブジェクト数も表示されます。
- ツリーを読みます。各行にキー、型、値が並びます。
- 加工するなら JSON を、編集するなら XML plist をコピーします。
- データと日付は文字列にまとめず、型を示したまま扱います。
よくある質問
- バイナリ plist と XML plist の違いは
- 符号化だけです。保持する値は同じで、macOS は両者を同じものとして扱います。バイナリの方が小さく読み込みも速いため、文書では XML で説明されていても端末上のファイルはほとんどバイナリです。
- ファイルが意味のない数字と $ で始まるキーばかりに見えます
- おそらく NSKeyedArchiver のアーカイブです。オブジェクトを $objects に平坦に並べ、入れ子ではなく UID 参照でつなぐため、見えている形はアーカイブのものでアプリのものではありません。$archiver キーがあればこのビューアが知らせます。
- 他のツールだと日付が 31 年ずれます
- Apple は 1970-01-01 ではなく 2001-01-01 から秒を数えます。差は 978307200 秒です。plist の日付を Unix タイムスタンプとして読むと 1970 年代に落ちます。ここではこのオフセットを適用しているので日付は正しく出ます。
- バイナリデータはどうなりますか
- データ型のまま保持し、長さも示します。JSON にはバイト列がないので __data_base64 というキーの下に base64 で入れ、XML 出力では <data> 要素に戻ります。
- バイナリ plist の編集や書き出しはできますか
- バイナリを XML に変換するので、それを編集して plutil や plist ライブラリで戻せます。バイナリ形式で書き出すのはこのツールの役割ではありません。
- ファイルはアップロードされますか
- いいえ。ブラウザ内で解析され、サーバーには送信されません。環境設定ファイルにはアカウント名やパスが含まれることが多いので、なおさら重要です。
関連ツール
Excel(XLSX)→CSV・JSON・Markdown 変換
ブラウザで .xlsx を開き、任意のシートを CSV・JSON・Markdown 表として書き出します。ファイルは端末から出ません。
MessagePack デコーダ
base64 か hex の MessagePack バイト列を貼り付けると、型・入れ子のマップ・バイナリ・タイムスタンプまでブラウザ内で解読します。
ICS カレンダービューア・繰り返し展開
.ics の招待やカレンダー書き出しを開いて中身を確認し、繰り返しルールが生む実際の日付まで展開します。
PWA Manifest ビルダー
Progressive Web App用の有効な `manifest.json` を構築 — 名前·アイコン·テーマカラー·表示モード·スコープ·方向 — 対応するHTML `<link>` とAppleメタタグ付き。
XML ↔ JSON コンバーター
XML → JSON·JSON → XML双方向、完全属性サポート、設定可能な属性プレフィックス·テキストキー。ブラウザネイティブDOMParserが名前空間·CDATA·コメントを処理。
EPUB ビューア・メタデータ・本文抽出
ブラウザで .epub を開き、メタデータ、章ごとの語数、本文テキスト、そしてビューアが本を拒む理由まで確認できます。