Не удается запустить новое расширение FileProvider в macOS 10.15

Я пытаюсь заставить расширение File Provider работать на macOS 10.15 Beta 7 (19A546d) с Xcode 11 Beta (11M392r) до сих пор не удается запустить его с помощью примера проекта. Документации очень не хватает, и должно быть что-то, что я пропустил.


Обновлять

В macOS Beta 8 (19A558d) и Xcode 11 GM (11A419c) NSFileProviderExtension больше не доступен для приложений Mac. Однако в документации говорится, что он доступен для приложений Mac Catalyst.

Когда я пытаюсь создать приложение Mac Catalyst с расширением поставщика файлов, я получаю следующие ошибки:

ошибка: «TestFPExtension.appex» — это расширение поставщика файлов, которое недоступно при сборке для Mac Catalyst. Возможно, вам потребуется ограничить платформы, для которых это расширение приложения должно быть встроено в целевой редактор. (в целевом «TestFP2» из проекта «TestFP2»)

ошибка: расширения поставщика файлов недоступны при сборке для Mac Catalyst. (в целевом «TestFPExtension» из проекта «TestFP2»)

Приложение собирается без ошибок для iOS. Похоже, этот API-интерфейс File Provider вообще недоступен на Mac.


Оригинальный вопрос

У меня есть приложение для Mac, которое при запуске выполняет следующие действия:

let domain = NSFileProviderDomain(identifier: NSFileProviderDomainIdentifier(rawValue: "com.app.testfileprovider"), displayName: "TestFileProvider", pathRelativeToDocumentStorage: "")

NSFileProviderManager.add(domain) { error in
    if let error = error {
        NSLog("Could not add file provider for domain: \(error)")
        return
    }

    guard let newManager = NSFileProviderManager(for: domain) else {
        NSLog("Could not create file provider manager.")
        return
    }

    self.manager = newManager
    NSLog("File provider URL: \(newManager.documentStorageURL.path)")
}

Иногда я получаю эту ошибку, не знаю почему:

Не удалось добавить поставщика файлов для домена: Error Domain=NSFileProviderInternalErrorDomain Code=3 «Значение «com.myappbundleid» недопустимо для параметра callerBundleID». UserInfo={NSLocalizedDescription=Значение «com.myappbundleid» недопустимо для параметра «callerBundleID».}

Ошибка может быть устранена с помощью команды killall Finder в Терминале, после чего она успешно запускается и выводит:

URL поставщика файлов: /Users/[username]/Library/Group Containers/group.com.myappgroup/Хранилище поставщика файлов

В Finder папка «Хранилище поставщика файлов» отображается со значком облака, что, похоже, нормально. Наверное.

У меня есть класс расширения поставщика файлов, который в основном представляет собой сгенерированный код, когда я добавил цель расширения поставщика файлов в свое приложение для Mac в Xcode:

class FileProviderExtension: NSFileProviderExtension {
    var fileManager = FileManager()
    override init() {
        NSLog("File provider initialized")
        super.init()
    }
    ...

Здесь сообщение File provider initialized никогда не регистрируется, и расширение никогда не инициализируется. Никак не могу запустить.

В Console.app это единственное релевантное сообщение, которое я смог найти:

по умолчанию 09:14:35.447849+0200 lsd com.apple.launchservices - 45683955: проверка того, управляется ли приложение в файле:///Users/laszlo.agardi/Library/Developer/Xcode/DerivedData/FileProviderMacTest-eebpahoydvfxovantvhkplhgrcty/Build/Products/ Debug/FileProviderMacTest.app/Contents/PlugIns/FileProviderExt.appex//com.myapp.fptest.FileProviderExt

Что я сделал на данный момент:

  • приложение и расширение находятся в песочнице, это задается в файлах прав
  • приложение и расширение используют одну и ту же группу приложений, также заданную в правах
  • Tried to launch the extension:
    • Run the file provider from Xcode, Xcode was waiting for the extension to launch
    • Я открыл папку File Provider Storage в Finder, она имеет значок облака. Но никакие действия с файлами внутри или просто просмотр не запускают расширение поставщика файлов.

Что я упускаю? Как запустить расширение поставщика файлов в macOS Catalina?


person SolidSun    schedule 04.09.2019    source источник
comment
Вам удается запустить расширение File Provider в Catalyst, чтобы найти другой способ? Я думаю попробовать расширение пакета ручной загрузки как это сделать и связаться с ним, хотя Группы приложений.   -  person Victor Kushnerov    schedule 30.09.2019
comment
developer.apple.com/documentation/fileprovider?language=objc говорит 10.15+ а также Катализатор. Он снова доступен?   -  person guruz    schedule 07.10.2019
comment
Хотя developer.apple.com/documentation/fileprovider/ говорит только Catalyst .   -  person guruz    schedule 07.10.2019
comment
Я обнаружил, что эта функция удалена с страницы функций Catalina. Кто-нибудь знает, доступно ли оно сейчас на macOS Catalina.   -  person theJian    schedule 09.10.2019
comment
Страница документации не соответствует NSFileProviderReplicatedExtension (только для macOS) и NSFileProviderExtension (только для iOS). Catalyst явно не поддерживается API-интерфейсом поставщика файлов, как указано Xcode при попытке портировать последний.   -  person Peter    schedule 09.03.2021