2

我正在尝试从头开始构建一个 macOS 应用程序,该应用程序利用 macOS Big Sur 附带的新文件提供程序 API 。幸运的是,Xcode 的最新版本 12.5 beta 3 带有一个文件提供程序扩展,我可以轻松地将它添加到我的 macOS 应用程序中(通过文件、新建...、目标...、文件提供程序扩展)。

我不清楚的是如何以及在何处初始化此文件提供程序 API。我尝试AppDelegate.swift根据在 Internet 上找到的一些代码来执行此操作。但是当我启动应用程序时,我会在 Xcode 的调试控制台中记录以下代码:

2021-04-13 17:19:57.760716+0200 GiraffeApp[30325:1559029] GiraffeApp starting
2021-04-13 17:19:57.854440+0200 GiraffeApp[30325:1559463] Successfully removed all domains
2021-04-13 17:19:57.893298+0200 GiraffeApp[30325:1559458] signalEnumerator failed: No valid file provider found with identifier com.foo.GiraffeApp.GiraffeFileProvider/GiraffeDomain.
2021-04-13 17:19:57.906521+0200 GiraffeApp[30325:1559458] Unable to add file provider domain: The file couldn’t be saved because a file with the same name already exists.

我不明白为什么找不到文件提供程序,因为它(或至少应该)嵌入到项目中。该扩展是沙盒的(似乎也是一项要求),并且该应用程序使用我的开发证书进行了代码签名。我也看不到 Finder Locations 部分中显示的任何内容。

为了不用在这里贴多页源代码,我把代码放到了GitHub 上。感谢您的关注!对此的任何帮助都将受到高度赞赏。

4

1 回答 1

0

addDomain 调用不会等待 removeAll 调用完成,因此您可能正在尝试在其先前的化身被删除之前添加域。

您可以尝试在 removeAll 的完成处理程序中移动 addDomain 调用吗?

于 2021-04-22T23:51:07.123 回答