[iOS] UISupportsDocumentBrowser / LSSupportsOpeningDocumentsInPlace

오이영·2022년 11월 8일

항상 Testflight에 올리면 delivery는 성공했으나 다음번에는 이런 항목을 추가하세요라고 메일이 온다.

해석해보자면

내가 만든 앱에서 CFBundleDocumentTypes를 선언하여 앱에서 문서를 열 수 있다는 것을 알렸습니다.

UIDocumentBrowserViewController를 사용하는 경우에는 Info.plist에서 UISupportsDocumentBrowser를 YES로 설정하십시오. 그렇지 않으면 Info.plist의 LSSupportsOpeningDocumentsInPlace 키를 'YES'(권장) 또는 'NO'로 설정하여 앱이 파일을 열 수 있는지 여부를 지정합니다. 

모든 문서 기반 앱에는 다음 구성 중 하나가 포함되어야 합니다.

CFBundleDocumentTypes는 내가 추가했으니까 알겠지만 UIDocumentBrowserViewController, UISupportsDocumentBrowser, LSSupportsOpeningDocumentsInPlace는 볼 때마다 헷갈린다.

매번 까먹고 매번 찾아보지 말고 정리를 해보자.

UIDocumentBrowserViewController

UIDocumentBrowserViewController

로컬 및 클라우드에 저장한 문서를 검색하고 작업을 수행하기 위한 보기 컨트롤러입니다.

  • '나의 아이폰'과 같이 시스템의 local file provider에도 접근할 수 있고 'iCloud Drive'처럼 iCloud file provider에도 접근할 수 있다.
  • local file provider를 통해서는 다른 앱들의 Document 폴더 영역을 볼 수 있는데 모든 앱들의 폴더를 볼 수 있는 것이 아니고 UISupportsDocumentBrowser를 YES로 설정하거나 UIFileSharingEnabledLSSupportsOpeningDocumentsInPlace 값을 설정한 앱에 한하여 볼 수 있다.

UISupportsDocumentBrowser

UISupportsDocumentBrowser

다른 앱에서 앱의 Document 폴더에 저장된 파일을 열고 편집할 수 있도록 하려면 이 키를 YES로 설정합니다. 또한 이 키를 사용하면 설정에서 앱의 기본 저장 위치를 설정할 수 있습니다.

  • test 앱의 UISupportsDocumentBrowser를 true로 설정하면 내 파일 앱에서 test 앱의 Document 폴더가 보인다.

LSSupportsOpeningDocumentsInPlace

LSSupportsOpeningDocumentsInPlace

앱이 문서 사본이 아닌 원본 문서를 열 수 있는지 여부를 나타내는 값

  • NO: 원본 파일에 대한 사본을 inbox 디렉토리에 생성

  • YES: 원본 파일 url 그대로 사용

  • cf) inbox 폴더: Document 폴더 내 inbox 폴더. 타 앱을 통해 전달 받은 파일들이 저장된다. 해당 디렉토리에 파일이나 폴더 추가 불가능하다.(참고: https://jinnify.tistory.com/26)

0개의 댓글