AppForceps
概要
AppForceps は iOS シミュレータと、Xcode または Device Hub で実機から取り出した Data Container を GUI で開いて、plist や SQLite を直接編集できる macOS デスクトップアプリです。Finder ライクな 4 ペインで Devices → Apps → Files → Editor を矢印キーで降りていけます。
シェルから plutil や sqlite3 を叩き、xcrun simctl spawn ... で
cfprefsd を再起動する一連の流れを GUI からひと操作にまとめることを目的にしています。
主な特徴
Data Container を GUI で開く
シミュレータの Data Container、Xcode で取り出した .xcappdata、登録したローカルフォルダを 1 つの UI で扱えます。
plist と SQLite の内蔵エディタ
plist は XML/Binary を自動判定して型付きで編集。SQLite はテーブル一覧から行を選んでセル単位で更新できます。
自動バックアップと取り消し
編集前に自動でバックアップを取り、直近 20 件まで取り消せます。Cmd+Z で安全に試行錯誤できます。
横断検索と Workflow プリセット
ファイル名 / plist キー / SQLite テーブル名を全ソース横断で検索。Firebase Remote Config の一括編集もひと操作で適用できます。
インストール
Homebrew でインストールできます。
brew install --cask kusumotoa/tap/appforceps macOS 13 (Ventura) 以上で動作します。
使用例
開発の動機や実機での運用フローについては、以下のブログ記事をご参照ください。
-
iOS シミュレータと実機の Data Container を操作するアプリを作った
xcappdata と Data Container の違い、Xcode / Device Hub と組み合わせた実機運用、Firebase Remote Config の SQLite を直接書き換える流れを解説しています
-
iOS の plist を書き戻しても反映されない原因と cfprefsd を再起動する解決策
AppForceps が裏で行っている cfprefsd 再起動の背景と、シミュレータ / 実機への SIGTERM の届け方