2016-12-21 6 views
2

그래서 로컬로 CoreData 프레임 워크로 사용자 정보를 저장하는 앱을 만들고 있습니다. 정보는 민감 할 수 있으므로 데이터베이스에 저장된 정보를 보호하는 방법을 생각하고 있습니다.CoreData & Data Protection

사람이 어떻게 작동하는지 알고 : 엑스 코드 대시 보드에서 기능 탭에서,이 데이터 보호 스위치를 발견? 스위치를 켜면 Xcode가 내 CoreData 파일을 자동으로 인코딩합니까? 또는 내 CoreData 파일에이 보호 기능을 구현하는 방법은 무엇입니까? 시간과 인내심에 감사드립니다. 고맙습니다!

+0

Apple의 설명서를 살펴 보았습니까? 어느 부분에 도움이 필요합니까? –

+0

@Tom Harrington –

+0

@Tom Harrington 예 데이터 보호에 대한 Apple의 설명서를 읽었지만 매우 간단하며 구현 방법이나 유용한 방법은 언급하지 않았습니다. 지금 CoreData 데이터베이스에 iOS의 데이터 보호를 구현하는 방법에 대해 혼란 스럽습니다 ~ –

답변

1

적절한 지점을 찾았 으면 대상 기능 창에서 데이터 보호 스위치를 켜서 데이터 보호를 사용한다는 신호를 보내야합니다. Apple's documentation에 따르면,이 충분해야합니다

보호의 기본 레벨이있는 ​​장치가 잠겨있을 때 암호화 및 액세스 할 수없는 파일, 완벽하게 보호합니다. 당신은 프로그램 그것은 당신이 프로그래밍 보호 수준을 설정할 수 있습니다 상태

[...] 당신의 응용 프로그램에서 만든 파일에 대한 보호 수준을 설정할 수 있습니다.

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: 
         @YES, NSMigratePersistentStoresAutomaticallyOption, 
         @YES, NSInferMappingModelAutomaticallyOption, 
         NSPersistentStoreFileProtectionKey, NSFileProtectionComplete, // <-- HERE 
         nil]; 
... 

__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; 
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) { 
... 
} 

NSFileProtectionComplete

을 의미하는 파일이 저장되어 다음 persistentStoreCoordinator를 만들 때, 적절한 옵션을 사용해야합니다, 당신은 (나는 아직도 저장 될, 그렇게) 그렇게하려면 암호화 된 형식으로 디스크에 저장되며 장치가 잠겨 있거나 부팅되는 동안 을 읽거나 쓸 수 없습니다.

NSFileProtectionCompleteUnlessOpen을 사용할 수도 있습니다. 차이점은 Xcode 빠른 도움말을 참조하십시오.

+0

답변 해 주셔서 감사합니다. 따라서이 권한을 이해하면 대상의 기능 창에서 데이터 보호 스위치를 켜면이 앱에 포함 된 모든 파일이 암호화되어 액세스 할 수 없게됩니다. –

+0

그러나 프로그래밍 방식으로 보호 수준을 변경할 수있는 옵션이 있습니다. 스위치 켜는 소리가 내게 충분하다. D –

+0

네. 어쩌면 이것이 문서가 너무 간결한 이유 일 것입니다.) – Dirk