4

iPhoneアプリのキーチェーンを削除する方法はありますか?自分で削除できるように、パージコマンドまたはすべてのキーのリストのいずれか。

4

1 に答える 1

9

パージコマンドなどはありません。
とにかく、アプリケーションがアクセスできるキーチェーンはアプリケーション専用であるため、書き込んだ内容を簡単に追跡して削除することができます。

キーチェーンに保存できるすべての可能なデータ型を1つずつ削除する独自のパージメソッドを実装できます。以下は、すべてのGenericPasswordエントリを削除する方法です。

- (BOOL)deleteKeychainData
{
    /* delete custom data */
    NSMutableDictionary *searchData = [NSMutableDictionary new];
    [searchData setObject:(id)kSecClassGenericPassword forKey:(id)kSecClass];
    [searchData setObject:kTagKeychainService forKey:(id)kSecAttrService];

    OSStatus statusData = SecItemDelete((CFDictionaryRef)searchData);
    [searchData release];

    CHECK_CONDITION1(statusData == errSecSuccess
                     || statusData == errSecItemNotFound,
                     @"Error while deleting keychain data, OSStatus == %d", statusData);

    /* delete assymetric keys*/
    return [self deleteKeyPair];
}

したがって、実行する必要があるのは、すべての可能なkSecClass値に対してこのメ​​ソッドを呼び出すことです。データ型が異なれば、異なる辞書フラグを設定する必要があることに
注意してください。

よろしく

于 2010-12-30T18:17:58.493 に答える