FileProviderExtension 不会在 macOS 12.2 中加载

FileProviderExtension won't be loaded in macOS 12.2

我是 macOS 开发新手。

我正在尝试开发 macOS FileProvider 扩展,一切都很好,直到我将 macOS 从 11 更新到 12.2。

更新 OS 后,FileProvider 扩展不会被 NSFileProviderManager.add(域)及其完成处理程序加载 returns 错误 - NSFileProviderDomain.Error.providerNotFound

@IBAction func tapAddDomainButton(_ sender: Any) {
NSFileProviderManager.add(domain) { error in
    print("Error: \(error)") // <- Error: Optional(Error Domain=NSFileProviderErrorDomain Code=-2001 "The application cannot be used right now." UserInfo={NSLocalizedDescription=The application cannot be used right now.})
}

}

我在 Xcode 中使用默认 macOS > App + 'File Provider Extension' 创建了一个新样板项目,但仍然出现相同的错误。 相同的代码适用于 macOS 11.6.1.

奇怪的是 apple 示例代码不会 return 错误并且在 macOS 12.2 中仍然有效。 我找不到我的代码和 Apple Sample Code.

之间的任何区别

我上传了我的测试项目here。 请帮助

提前致谢。

附加信息:我的同事在 macOS 12.0.1/12.1 上进行了测试,我的测试项目工作正常。

我想我已经解决了这个问题。

重点是AppGroup。 FileProvider 需要 AppGroup 功能。

我认为重现问题的步骤如下所示。

  1. 第一次在没有AppGroup的情况下启动provider,会遇到FileProvider错误。
  2. 添加 AppGroup 功能并重新启动。
  3. 仍然出现错误。

在首次启动时添加 AppGroup 功能的新项目不会失败。

我遇到了同样的问题,甚至打开了苹果反馈。 正如您所写,我发现(在我拔头发太久之后)是,应用程序组是必不可少的。 但不仅如此,Extension Info.plist 键“NSExtensionFileProviderDocumentGroup”必须与您的应用程序组相对应。

我通过更改应用和扩展组 (com.apple.security.application-groups) 设法修复了它:

  • 来自$(APP_TEAM_ID).MyGroup
  • group.MyGroup