https://developer.apple.com/documentation/fileprovider/macos_support
"Create a File Provider extension for macOS."
macOS를 위한 파일 제공자 확장을 생성합니다.
macOS를 위한 파일 제공자 확장을 생성하는 경우 복제된 확장을 사용해야 합니다. 시스템은 아이템의 로컬 카피를 관리하고 저장할 책임을 갖습니다(문서 및 폴더 모두). 확장은 로컬 복사본과 원격 저장소 사이에서 데이터를 싱크하는 데 책임이 있습니다. 이는 메타데이터를 갖는 로컬 시스템 및 원격 저장소에 있는 아이템의 컨텐츠를 제공합니다. 또한, 해당 아이템들에 대한 모든 원격 변경사항을 시스템에 알려주고, 로컬 변경사항을 원격 저장소에 업로드합니다. 더 많은 정보는 Synchronizing the File Provider Extension을 살펴보시기 바랍니다.
Synchronizing the File Provider Extension
https://developer.apple.com/documentation/fileprovider/macos_support/synchronizing_the_file_provider_extension
파일 제공자 확장은 최소한 아래 내용 수행이 필요합니다.
NSFileProviderReplicatedExtension
및 NSFileProviderEnumerating
프로토콜 모두를 채택해야 합니다. 파일 제공자 프로토콜에 리스트로 나와있는 다른 프로토콜 구현을 통해 추가적인 기능을 추가할 수 있습니다.enumerator(for:request:)
메소드를 호출할 때, 원격 저장소로부터 아이템을 열거하기 위해 NSFileProviderEnumerator
프로토콜을 채택하는 객체를 구현해야 합니다.NSFileProviderItemVersion
프로토콜을 채택하고 있는 클래스를 구현해야 합니다.Note
시스템은 두 가지 다른 열거자를 사용합니다. 첫 번째는 시스템이 원격 저장소로부터 아이템을 열거할 수 있도록 해줍니다. 두 번째는 앱이 시스템에 의해 로컬로 저장된 아이템을 열거할 수 있도록 해줍니다. 첫 번째 열거자는 시스템이enumerator(for:request:)
메소드를 호출할 때 반환하는 것으로 구현해야 합니다. 시스템은NSFileProviderManager
클래스의enumeratorForMaterializedItems()
메소드가 호출될 때 두 번째 열거자를 제공합니다.
싱크에서 파일 제공자 컨텐트의 로컬 및 원격 복사본을 유지합니다.
https://developer.apple.com/documentation/fileprovider/macos_support/synchronizing_the_file_provider_extension
https://velog.io/@panther222128/Synchronizing-the-File-Provider-Extension
iOS의 다른 버전을 지원하는 파일 제공자 확장을 생성합니다.
https://developer.apple.com/documentation/fileprovider/creating_file_providers_for_multiple_versions_of_ios
https://velog.io/@panther222128/Creating-File-Providers-for-Multiple-Versions-of-iOS