2017-02-11 14 views
2

샌드 박스가있는 Mac 앱을 만들고 NSOpenPanel을 사용하여 파일 URL을 가져 와서 UserDefaults에 보안 범위 지정 북마크로 저장했습니다. 앱을 종료하고 다시 시작하면 해당 데이터 블록을 URL로 다시 해석 할 수 있습니다.startAccessingSecurityScopedResource()는 실제로 무엇을합니까?

설명서에 startAccessingSecurityScopedResource()으로 전화하고 반환 값을 확인해야한다고 나와 있습니다. (그걸 호출하면 true이 반환됩니다.)하지만 전화를하지 않으면 해결 된 URL이 있는데 여전히 액세스 권한이있는 것 같습니다.

startAccessingSecurityScopedResource()은 실제로 무엇을합니까? 내가 전화하지 않으면 일어날 수있는 나쁜 일이 있습니까?

+0

업데이트 : 맥 앱 스토어에 몇 달 동안 적어도 6 가지 버전의 앱이 있었어. 이 응용 프로그램은'startAccessingSecurityScopedResource()'를 호출하지 않지만 Apple 검토 자나 내 사용자 모두 파일이나 폴더에 대한 액세스와 관련된 단일 문제를보고하지 않았습니다. – Ssswift

답변

1

앱이 표준 위치 (다운로드, 음악 무비, 사진)의 파일에만 액세스하고 앱에 필요한 entitlements for programmatic file and folder access을 포함하면 해당 위치에 보안 범위가 지정된 북마크를 저장할 필요가 없습니다.

그러나 앱을 다시 시작한 후에도 액세스 할 수 있어야하는 다른 위치에 대해서는 보안 범위가 지정된 북마크를 저장하고 액세스하기 전에 startAccessingSecurityScopedResource()으로 전화해야합니다. 해당 단계를 건너 뛰면 해당 파일에 액세스하자 마자 예외가 발생합니다.

은 보안 범위가 지정된 북마크 리소스를 앱의 샌드 박스에서 사용할 수있게하여 해당 리소스에 대한 액세스 권한을 부여합니다.

+0

"해당 단계를 건너 뛰면 해당 파일에 액세스하자 마자 예외가 발생합니다." 제가 질문에 언급했듯이, 아닙니다. 이 문제가 보이십니까? 어떤 MacOS 버전을 사용하고 있습니까? – Ssswift