hmhv

iOSシミュレーターのキーチェーン情報削除

2022-04-18

何かしらの理由でiOSシミュレーターのキーチェーン情報を削除したい時のためのメモ

シミュレーターのUUIDを取得

xcrun simctl list | egrep '(Booted)'
    iPhone 13 Pro Max (シミュレーターのUUID) (Booted)
    Phone: iPhone 13 Pro Max (シミュレーターのUUID) (Booted)

ファイル確認

キーチェーン情報はSQLiteのファイルとして保存されている

パス:~/Library/Developer/CoreSimulator/Devices/(シミュレーターのUUID)/data/Library/Keychains
ファイル名:keychain-2-debug.db

la ~/Library/Developer/CoreSimulator/Devices/(シミュレーターのUUID)/data/Library/Keychains
total 5832
drwxrwxrwx  17 u1  staff   544B Apr  8 08:12 Analytics
-rw-------@  1 u1  staff   788K Apr 17 10:50 keychain-2-debug.db
-rw-------   1 u1  staff    32K Apr 17 10:49 keychain-2-debug.db-shm
-rw-------   1 u1  staff   1.2M Apr 18 20:50 keychain-2-debug.db-wal

ファイルを開く

  • sqlite3で開く
sqlite3 ~/Library/Developer/CoreSimulator/Devices/(シミュレーターのUUID)/data/Library/Keychains/keychain-2-debug.db
SQLite version 3.37.0 2021-12-09 01:34:53
Enter ".help" for usage hints.
sqlite>

TablePlusのインストールはbrew install --cask tableplus

open ~/Library/Developer/CoreSimulator/Devices/(シミュレーターのUUID)/data/Library/Keychains/keychain-2-debug.db

情報の削除

キーチェーン情報はテーブルgenpに保存されて、カラムagrpに書き込んだアプリのバンドルIDがあるのでそこを参考に削除可能

SELECT rowid, agrp FROM genp;
DELETE FROM genp WHERE agrp = 'TEAMID.com.your.app.bundle.id';
または
DELETE FROM genp WHERE agrp like '%xxxxx%';

参考:https://stackoverflow.com/a/42564772