无法在macOS 10.15上启动新的FileProvider扩展

时间:2019-09-04 13:33:25

标签: macos macos-catalina fileprovider-extension fileprovider

我正在尝试文件提供程序扩展名,以在 Xcode 11 Beta(11M392r)上的MacOS 10.15 Beta 7(19A546d)上运行到目前为止,还没有设法通过示例项目启动它。该文档非常缺乏,一定是我错过了一些东西。


更新

macOS Beta 8(19A558d) Xcode 11 GM(11A419c)中,NSFileProviderExtension不再适用于Mac应用程序。但是该文档说它可用于Mac Catalyst应用。

当我尝试构建具有文件提供程序扩展名的Mac Catalyst应用程序时,出现以下错误:

  

错误:“ TestFPExtension.appex”是文件提供程序扩展,在为Mac Catalyst构建时不可用。您可能需要限制应在目标编辑器中嵌入此应用程序扩展的平台。 (在项目“ TestFP2”的目标“ TestFP2”中)

     

错误:为Mac Catalyst构建文件时,文件提供程序扩展名不可用。 (在项目“ TestFP2”的目标“ TestFPExtension”中)

该应用程序的构建适用于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)")
}

我有时会收到此错误,不确定为什么:

  

无法为域添加文件提供程序:错误Domain = NSFileProviderInternalErrorDomain代码= 3“值“ com.myappbundleid”对于参数“ callerBundleID”无效。” UserInfo = {NSLocalizedDescription =值“ com.myappbundleid”对于参数“ callerBundleID”无效。}

该错误可以通过终端机中的killall Finder命令解决,然后成功运行并输出:

  

文件提供者网址:/ Users / [用户名] / Library / Group Containers / group.com.myappgroup /文件提供者存储

在Finder中,“ File Provider Storage”文件夹出现并带有云标记,这似乎没问题。我想。

我有我的文件提供程序扩展名类,基本上是我在Xcode中将文件提供程序扩展名目标添加到Mac应用程序时生成的代码:

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:检查是否在file:///Users/laszlo.agardi/Library/Developer/Xcode/DerivedData/FileProviderMacTest-eebpahoydvfxovantvhkplhgrcty/Build中管理应用程序/Products/Debug/FileProviderMacTest.app/Contents/PlugIns/FileProviderExt.appex//com.myapp.fptest.FileProviderExt

我到目前为止所做的事情:

  • 应用和扩展程序已沙箱化,已在权利中进行了设置 文件
  • 该应用程序和扩展程序共享相同的应用程序组,也按权利设置
  • 试图启动扩展程序:
    • 从Xcode运行文件提供程序,Xcode正在等待扩展程序启动
    • 我在Finder中打开了文件提供程序存储文件夹,它具有云标记。但是内部没有文件操作或仅浏览就不会启动 文件提供商扩展名

我想念什么?如何获取文件提供程序扩展以在macOS Catalina上启动?

0 个答案:

没有答案