2011-08-10 7 views
2

저는 애플의 개발 사이트를 포함하여 웹을 통해 다녀 왔지만 앱의/Documents 디렉토리 속성을 설정하는 방법에 대한 지침을 찾을 수 없습니다. NSFileProtectionKey = NSFileProtectionComplete. 앱을 처음 실행할 때 값을 설정했으나 그렇지 않은 경우 설정하는 방법이 있습니까? 일부 X-Code 확인란, plist 또는 기타를 통하는 것과 같습니다.iOS 5 앱에 데이터 보호 클래스 인 타이틀먼트를 추가하는 방법

관련 메모 : NSFileProtectionComplete의 데이터 보호 클래스가있는 디렉토리에 저장된 파일은 자동으로 해당 디렉토리와 동일한 보호 클래스로 취급됩니까?

감사 무리

Fissh (208)이 이상 스레

답변

4

코드없이, 응용 프로그램 문서 디렉토리에있는 파일을 보호하기 위해, 당신은 응용 프로그램에 entitlements.plist을 추가해야합니다.

entitlements.plist에서 "NSFileProtectionComplete"값과 함께 "DataProtectionClass"키를 추가하십시오. 장치가 잠겨있는 동안 파일은 자동으로 보호됩니다. 여기

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
    <plist version="1.0"> 
    <dict> 
     <key>DataProtectionClass</key> 
     <string>NSFileProtectionComplete</string> 
    </dict> 
    </plist> 
+0

이에 대한 설명은 WWDC 2011 비디오 208 "iOS 응용 프로그램 보안"을 참조하십시오. 이 키는 38:12에 다루지 만 전체 비디오를 볼 가치가 있습니다. –

+0

iOS 4.0 이상에서이 인 타이틀먼트 접근 방식이 지원된다면 어떤 아이디어가 필요합니까? 설명서를 검색했지만 WWDC 2011 비디오 208을 제외한 어디에도 언급되지 않은 것을 찾을 수 없습니다. –

+0

이 방법이 효과가 있습니까? – satheeshwaran

0

WWDC 세션, 난 당신이 그 키를 가진 자격 파일을 만들 생각, 당신은 코드를 작성할 필요가 없습니다.

나는 아직이 작업을 수행하지 않아 완전히 작동하는지 확신 할 수 없습니다.

0

이것은/Documents 디렉토리 보호를 올바르게 설정하는 방법을 알기 전까지 생각한 해킹입니다.

NSError *error; 
NSDictionary *attrs = [self attributesOfItemAtPath:DOCUMENTS_FOLDER error:&error]; 
if(![[attrs objectForKey:NSFileProtectionKey] isEqual:NSFileProtectionComplete]) 
{ 
    attrs = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey]; 
    BOOL success = [self setAttributes:attrs ofItemAtPath:DOCUMENTS_FOLDER error:&error]; 
    if (!success) 
     NSLog(@"Set ~/Documents attr NOT successfull"); 
} 

앱을로드 할 때 위 코드를 호출하고 문서 디렉토리 보호가 설정되지 않은 경우이를 설정하기 만하면됩니다.

Fissh

0

http://devforums.apple.com/message/627887 개발자 포럼 예입니다 :이 링크를 발견하고,이 현재 작동하지 않는 방법 자격 부여 및 버그 문제에 대한 제기, 그래서 우리는 것 DataProtectionClass 자격

적용 파일별로 파일을 수행합니다.