2016-06-14 3 views
0

내 코드는 여기에 있습니다 :영역 암호화, 영역 파일 복호화가 실패했습니다. 무엇이 잘못 되었습니까?

RLMRealmConfiguration *configuration = [RLMRealmConfiguration defaultConfiguration]; 
NSString *filePath = [NSString stringWithFormat:@"%@",configuration.fileURL]; 
NSString *dateBaseName = @"aaa"; 
configuration.fileURL = [NSURL URLWithString:[[[filePath stringByDeletingLastPathComponent] 
               stringByAppendingPathComponent:dateBaseName] 
               stringByAppendingPathExtension:@"realm"]]; 
configuration.encryptionKey = [self getEncriptionKey]; 
[RLMRealmConfiguration setDefaultConfiguration:configuration]; 
NSError *err = nil; 
RLMRealm *realm = [RLMRealm realmWithConfiguration:configuration 
              error:&err]; 
if (!realm) { 
    NSLog(@"Error opening realm: %@", err); 
} 

을하지만 난 datebase를 마이그레이션 할 때, "영역 파일 암호 해독 실패"앱이 추락 한 것으로 보인다.

내 마이그레이션 코드는 여기에 있습니다 :

RLMRealmConfiguration *configuration = [RLMRealmConfiguration defaultConfiguration]; 
configuration.schemaVersion = 3; 
configuration.encryptionKey = [self getEncriptionKey]; 
configuration.migrationBlock = migrationBlock; 
[configuration setDeleteRealmIfMigrationNeeded:YES]; 
[RLMRealmConfiguration setDefaultConfiguration:configuration]; 

도움 나!

답변

0

언제 마이그레이션 코드를 실행합니까?

코드는 다음과 같아야합니다

RLMRealmConfiguration *configuration = [RLMRealmConfiguration defaultConfiguration]; 

NSString *filePath = [NSString stringWithFormat:@"%@",configuration.fileURL]; 
NSString *dateBaseName = @"aaa"; 

configuration.fileURL = [NSURL URLWithString:[[[filePath stringByDeletingLastPathComponent] 
               stringByAppendingPathComponent:dateBaseName] 
               stringByAppendingPathExtension:@"realm"]]; 
configuration.encryptionKey = [self getEncriptionKey]; 
configuration.schemaVersion = 3; 
configuration.migrationBlock = migrationBlock; 

[RLMRealmConfiguration setDefaultConfiguration:configuration]; 

NSError *err = nil; 
RLMRealm *realm = [RLMRealm realmWithConfiguration:configuration 
              error:&err]; 
if (!realm) { 
    NSLog(@"Error opening realm: %@", err); 
} 

또한 경우 마이그레이션이 필요하며 마이그레이션이 실행되지 않습니다에 [configuration setDeleteRealmIfMigrationNeeded:YES];이 영역 파일을 삭제 않습니다.

관련 문제