データベースを暗号化するために Magical Record ライブラリを使用している iOS プロジェクトに SQLCipher を追加しようとしています。また、encrypted-core-data プロジェクトの EncryptedStore クラスを使用します: https://github.com/project-imas/encrypted-core-data。
投稿iOS Magical Record & SQLCipherの指示に従っている
メソッド- (NSPersistentStore *) MR_addSqliteStoreNamed:(id)storeFileName withOptions:(__autoreleasing NSDictionary *)options
を次のように編集しました。
[coordinator
addPersistentStoreWithType:EncryptedStoreType
configuration:nil
URL:databaseURL
options:options
error:&error];
オプション付き:
NSDictionary *options = @{
EncryptedStorePassphraseKey : @"the_password",
NSMigratePersistentStoresAutomaticallyOption : @YES,
NSInferMappingModelAutomaticallyOption : @YES
};
タイプ EncryptedStoreType を使用している場合、結果の NSPersistentStore* オブジェクトが作成されない (nil を返す) という問題があります。返されるエラー コードも nil です。
使用されている SQLCipher ライブラリは商用の iOS バージョンであり、openSSL が既に含まれています。SQLCipher の統合は問題ないようです。encrypted-core-data プロジェクトでテストするときに、暗号化されたデータベースを問題なく使用できます。
おそらくロングショットですが、SQLCipher を Magical Record と統合するときに同様の問題に遭遇した人はいますか?アドバイスをいただければ幸いです。
よろしくお願いします2J