Не удается запустить новое расширение 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-интерфейс поставщика файлов еще не доступен на 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/[имя пользователя]/Library/Group Containers/group.com.myappgroup/File Provider Storage

В Finder появится папка "File Provider Storage" с облачным значком, что кажется нормальным. Я думаю.

У меня есть класс расширения поставщика файлов, который в основном является сгенерированным кодом, когда я добавил цель расширения поставщика файлов в свое приложение 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-eebpahoydvfxovantvhkplus Отладка /FileProviderMacTest.app/Contents/PlugIns/FileProviderExt.appex//com.myapp.fptest.FileProviderExt

Что я сделал до сих пор:

  • приложение и расширение находятся в изолированной программной среде, они задаются в файлах прав
  • приложение и расширение используют одну и ту же группу приложений, также заданную в правах
  • Пытался запустить расширение:
    • Запустите поставщик файлов из Xcode, Xcode ждал запуска расширения
    • Я открыл папку File Provider Storage в Finder, на ней есть значок облака. Но никакое действие с файлом внутри или просто просмотр не запускает расширение поставщика файлов.

Что мне не хватает? Как мне запустить расширение File Provider в macOS Catalina?

0 ответов

Другие вопросы по тегам