2012-09-22 2 views
2

내 응용 프로그램에 NSSavePanel을 사용하고 있습니다. 내 OS X 10.7에서는 모두 정상적으로 작동하지만 다음과 같은 코멘트가있는 응용 프로그램이 Apple에 의해 거부되었습니다.동일한 위치에 파일을 두 번 저장하는 권한 부여 플래그를 수정하십시오.

두 번째로 내보낼 때 이전에 선택한 저장 위치가 작동하지 않습니다. 사용자는 위치를 선택 취소하고 파일을 다시 작성하기 위해 위치를 다시 선택해야합니다. 필요한 권한이 있는지 확인하십시오.

이 리뷰는 OS X 10.8을 실행하는 iMac에서 수행되었습니다.

이 내 저장 패널 코드입니다 :

NSSavePanel *savePanel = [NSSavePanel savePanel]; 
[savePanel setAllowedFileTypes:[NSArray arrayWithObject:@"mov"]]; 
[savePanel setDirectoryURL:[NSURL URLWithString:@"/Documents"]]; 
[savePanel setNameFieldStringValue: videoName]; 

[savePanel beginSheetModalForWindow:window completionHandler:^(NSInteger result){ 
    if (result == NSFileHandlingPanelOKButton) { 
     NSError *error = nil; 
     NSString *sourceFilePath = [NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath], videoName]; 
     NSString *destFilePath = [[savePanel URL] path]; 
     NSFileManager *fileManager = [[NSFileManager alloc] init]; 
     if(![fileManager copyItemAtPath:sourceFilePath toPath:destFilePath error:&error]) 
      NSLog(@"%@", error); 
    } 
}]; 

은 현재 내가이 플래그를 사용하고 있습니다 :

<dict> 
    <key>com.apple.security.app-sandbox</key> 
    <true/> 
    <key>com.apple.security.assets.movies.read-write</key> 
    <true/> 
    <key>com.apple.security.files.downloads.read-write</key> 
    <true/> 
    <key>com.apple.security.files.user-selected.read-write</key> 
    <true/> 
</dict> 

어떤 자격 플래그 내가이 문제를 해결하기 위해 사용해야합니까?

+0

그래서 때마다 사용자가 "수출"에 원하는 :

예를 들어

는이 질문에 주어진 샘플 코드 (그리고 허용 대답에 그것에 보정)를 참조하십시오 nssavepanel 맞지? – mark

+0

예, Mark, nssavepanel을 통해 저장 위치를 ​​선택합니다. – DioNNiS

답변

1

동일한 앱 실행 중에 두 번 저장하는 것에 대해 이야기하는 경우 자격이 필요하지 않습니다. 사용자가 NSSavePanel에서 파일을 선택하면 앱의 샌드 박스에 있습니다. 저장 패널이 두 번 모두 표시되는 경우에도 마찬가지입니다. "정상적으로 작동합니다". 두 번째로 저장 패널을 사용하지 않고 연속 실행간에 동일한 위치 인 경우 보안 범위의 책갈피를 파일에 저장해야합니다. 그들이 통해 저장 위치를 ​​선택 App Sandbox: document-scoped bookmark not resolving; not returning any error

+0

Dov에게 감사하지만 NSSavePanel을 지속적으로 보여줍니다. – DioNNiS

+0

Lion에서 실행할 때 동일한 파일을 두 번 저장할 수 있습니까? 그렇다면 마운틴 라이온에서 테스트를 진행하는 것이 가능한가요? 어쩌면 API 변경으로 인해 두 번째 쓰기 전에 파일이 잠겨있을 수 있습니다. 처음으로 작동하는 경우 앱 검토 팀에서 제안한 내용에도 불구하고 권한 부여와 관련이없는 것으로 판단됩니다. 재현 할 수 없다면 앱 검토 팀의 의견이 올바른 결론을 이끌어 내지 못했을 것입니다. – Dov

+0

검토 팀이 거부하는 이유에 대해 오해의 소지가있는 정보를 제공하는 경우가 많습니다. – mark

관련 문제