我是macOS开发的新手。
我正在尝试开发macOS FileProvider扩展,在我将macOS从11更新到12.2之前,一切都很好。
更新OS后,FileProvider扩展将不会由NSFileProviderManager.add(域)加载,其完成处理程序返回错误- 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 +‘文件提供程序扩展’创建了一个新的样板项目,但仍然出现了相同的错误。相同的代码在macOS 11.6.1上工作。
奇怪的是,苹果示例代码不会返回错误,并且仍然在macOS 12.2中工作。我找不到我的代码和苹果样本代码之间的任何区别。
我上传了我的测试项目这里。请帮帮忙
提前谢谢。
附加信息:我的同事在macOS 12.0.1/12.1中进行了测试,我的测试项目运行良好。
发布于 2022-02-10 12:22:29
我遇到了同样的问题,甚至打开了苹果的反馈。我发现(在花了很长时间把我的头发拔出来之后),在你写的时候,应用程序组是必不可少的。不仅如此,扩展Info.plist键"NSExtensionFileProviderDocumentGroup“必须与应用程序组相对应。
发布于 2022-02-10 05:18:59
我想我解决了这个问题。
关键是AppGroup。FileProvider需要AppGroup功能。
我认为这一问题的再现步骤如下。
在第一次启动时添加AppGroup功能的新项目不会失败。
发布于 2022-02-11 16:09:18
我通过更改应用程序和扩展组(com.apple.security.application-groups
)来修复它:
$(APP_TEAM_ID).MyGroup
group.MyGroup
https://stackoverflow.com/questions/71043758
复制相似问题