かなり長い間、KeychainItemWrapper の ARC バージョンを使用して、プライベート キーチェーン アイテムの読み取りと書き込みに成功してきました。
現在、iOS アプリを共有アクセス グループを使用するように変換して、同じアプリ プレフィックスを共有する 2 つのアプリからキーチェーン アイテムにアクセスできるように取り組んでいます。機能セクションで、キーチェーン グループ「MYAPPPREFIX.MYSHAREDACCESSNAME」を追加しました。
これらの行を使用して、変数をキーチェーン グループに書き込みます。
keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:key accessGroup:@"MYAPPPREFIX.MYSHAREDACCESSNAME"];
[keychainItemWrapper setObject:value forKey:(__bridge id)(kSecAttrAccount)]; // store the new value in the keychain
accessGroup がnilとして指定されている場合、うまく機能します。ただし、アクセス グループを指定すると、デバッガー ログに次のエラーが記録されてクラッシュします。
-[KeychainItemWrapper writeToKeychain] でのアサーションの失敗、..../KeychainItemWrapper.m:329 キャッチされない例外 'NSInternalInconsistencyException' によるアプリの終了、理由: 'キーチェーン アイテムを追加できませんでした。
結果の OSStatus エラー コードは -25243 で、詳細を追跡できませんでした。
共有アクセス グループに書き込むために他に何かしなければならないことはありますか?