2

我是 macOS 开发的新手。

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

更新操作系统后,NSFileProviderManager.add(domain) 不会加载 FileProvider 扩展,并且其完成处理程序返回错误 - 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。

奇怪的是,苹果示例代码不会返回错误,并且在 macOS 12.2 中仍然有效。我找不到我的代码和Apple Sample Code之间的任何区别。

在这里上传了我的测试项目。请帮忙

提前致谢。

附加信息:我的同事在 macOS 12.0.1/12.1 中进行了测试,我的测试项目运行良好。

4

3 回答 3

2

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

于 2022-02-10T12:22:29.680 回答
1

我想我设法解决了这个问题。

关键点是AppGroup。FileProvider 需要 AppGroup 功能。

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

  1. 首次启动没有 AppGroup 的提供程序,并面临 FileProvider 错误。
  2. 添加 AppGroup 功能并重新启动。
  3. 仍然得到错误。

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

于 2022-02-10T05:18:59.220 回答
0

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

  • $(APP_TEAM_ID).MyGroup
  • group.MyGroup
于 2022-02-11T16:09:18.433 回答