디바이스 파일 접근 권한 얻기

메신저 앱에서 사용자가 상대방에게 자신의 디바이스에 있는 파일을 전송하고자 할 때,

메신저 앱에서 파일 앱을 열어 사용자에게 파일을 선택하게 구현하려고 합니다.

이 때 파일에 접근하기 위해 사용자에게 접근을 허용하는 alert를 띄워 권한을 얻어야하나요??

만약 해야 한다면 어떻게 앱에 접근 권한이 있는지 확인할 수 있나요??

(UIDocumentPickerController를 사용하여 구현하였습니다!)

좋아요 1

실행하면 처음에 접근 권한을 물어보지 않던가요? 한 번 물어보고 나면 다시 물어보지는 않을 꺼예여.
애플의 문서 상으로는 우리 앱의 접급 권한이 설정될 위치가 명시되어 있고,
startAccessingSecurityScopedResource()이 함수 실행이 실패할 경우를 대비하라는 내용도 있네요.

원문 링크 : Apple Developer Documentation

Respond to Permission Changes
Users always have complete control over the apps that can access directories. After selecting a directory from the document picker, your app appears in Settings > Privacy > Files and Folders. This page lists all the apps that have permission to access shared directories, and users can revoke or restore permission for each app at any time.
This means your app must be ready to handle failures when accessing a directory’s content. Calls to the startAccessingSecurityScopedResource() method can fail, as well as any attempts to read or write to the URL. This is especially true when saving and resolving bookmarks to security-scoped URLs, because using saved bookmarks can greatly increase the amount of time users have to possibly change your app’s permissions.

그러면 startAccessingSecurityScopedResource() 실행이 실패했을 때 alert를 띄워 접근 권한을 얻으면 되나요??

좋아요 1

새로운 시뮬레이터/ 디바이스 타겟으로 실행하면 얼러트가 자동으로 뜨지 않나요?

보통 권한을 얻는 건 iOS가 직접 UI를 띄워서 하고, 우리는 그 메세지만 plist에 제공하는 방식을 써요.

GPS 권한이나 사진/카메라 접근등도 우리가 커스터마이즈할 수 없는 OS 제공 UI들 입니다.

다른 시뮬레이터로 돌려봤는데 alert는 뜨지 않고 바로 파일 선택창이 뜹니다!

혹시 제가 info.plist에 권한을 추가해서 그런걸까요??