web-dev-qa-db-ja.com

デバイスのキーチェーンをリセットする

デバイス上のアプリ内でログインフローをテストしています(KeychainItemWrapperを使用)。アプリのキーチェーンをリセット/削除するにはどうすればよいですか?

シミュレーターでiOSシミュレーター-> コンテンツと設定のリセット...をクリックして行います。

41
syntagma

キーチェーンアイテムはiOSサンドボックスにあり、ユーザーは不要なキーチェーンアイテムを削除するアクセス権がありません。これらは、APIを介してのみアクセスできます。

KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:[[NSBundle mainBundle] bundleIdentifier] accessGroup:nil]; 

//またはキーチェーンにアクセスする方法

[keychainItem resetKeychainItem];

または、デバイスの[設定]、[全般]、[リセット]、[すべての設定をリセット]からデバイスをリセットできます>>。ただし、デバイスにインストールされているすべてのアプリのキーチェーンがリセットされます。

12
Will
  • ダウンロードして、keychainWrapperhere からプロジェクトに追加します。
  • キーチェーンをリセットするviewControllerで次のコードを記述します。

CODE:

#import "KeychainItemWrapper.h"

@interface YourViewController ()
{
    KeychainItemWrapper *keychainItemWrapper;
}

- (void)viewDidLoad {

    [super viewDidLoad];

    keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"appname" accessGroup:nil];

}

- (IBAction)logoutButtonPressed:(id)sender {

    [keychainItemWrapper resetKeychainItem];

}
1
Khalid Usman

キーチェーンダンパーを使用してキーチェーンデータをダンプできます。次のリンクを取得 https://github.com/ptoomey3/Keychain-Dumper

このURLに移動し、Zipファイルをダウンロードして解凍します。このフォルダ内で、関心のある唯一のファイルはkeychain_dumperバイナリです。キーチェーン内のアプリケーションがアクセスできる情報は、その資格で指定されます。このバイナリは、ワイルドカードの資格を持つ自己署名証明書で署名されているため、すべてのキーチェーンアイテムにアクセスできます。資格ファイルにすべてのキーチェーンアクセスグループを含める、またはすべてのキーチェーンデータへのアクセスを提供する特定のキーチェーンアクセスグループを使用するなど、すべてのキーチェーン情報を確実に付与する他の方法もあります。たとえば、ツールKeychain-viewerは次の要素を使用します。

com.Apple.keystore.access-keychain-keys

com.Apple.keystore.device

1)このバイナリをデバイスの/ tmpフォルダーにアップロードし、実行可能ファイルを確認します。

2)ここで、/ private/var/Keychains/keychain-2.dbの場所に保存されているキーチェーンデータベースファイルが誰でも読み取り可能であることを確認します。

3)ターミナルに移動し、コマンドを渡すことでデータをダンプできます

.keychain_dumper

4)上記のコマンドは、すべてのユーザー名とパスワードをリストします。ただし、上記は一般的なパスワードとインターネットパスワードのみをダンプします。 「-h」コマンドを使用して、使用情報を表示できます。

5)「-a」コマンドを使用して、すべての情報をダンプできます。

ここで詳細情報と例を読むことができます dumping keychain data

1
Nik