1

我正在尝试使用 Finder 同步扩展上下文菜单从桌面读取文件,但它没有按预期工作。我已经添加了所有必需的沙箱设置,其他文件位置(如下载)工作正常,但桌面文件却不行。

是否有与桌面相关的其他设置来读取/写入文件?

4

3 回答 3

2

该问题已通过在授权密钥中显式添加桌面位置的绝对路径得到解决。

于 2018-09-20T01:52:41.807 回答
0

桌面位置是否包含在directoryURLsFinderSync 控制器的属性中?

/*
对于 directoryURLs 中存在的每个目录,扩展程序可以接收 -beginObservingDirectoryAtURL: 和 -endObservingDirectoryAtURL: 用于该目录和其中的任何目录。扩展启动时始终设置 directoryURLs;如果没有要监视的目录,则传递空集。
*/

open var directoryURLs: Set<URL>!

您应该确定问题是由于 Sandbox 访问冲突,还是 FinderSync 扩展 API 本身的访问级别滥用:

let rootDirectory = URL(fileURLWithPath: "/")
FIFinderSyncController.default().directoryURLs = [rootDirectory]
于 2018-09-18T20:46:11.103 回答
0

该问题已通过海报解决,但这里有一个示例:(这是基于来自:https ://stackoverflow.com/a/58389937/3276518 的答案)

主要是:

可以直接从 Xcode
com.apple.security.files.downloads.read-onlycom.apple.security.files.user-selected.read-only

绝对路径:
com.apple.security.temporary-exception.files.absolute-path.read-only

家相对路径:
com.apple.security.temporary-exception.files.home-relative-path.read-only

<plist version="1.0">
<dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.files.downloads.read-only</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-only</key>
    <true/>
    <key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
    <array>
        <string>/Users/<username>/Music/access.txt</string>
    </array>
    <key>com.apple.security.temporary-exception.files.home-relative-path.read-only</key>
    <array>
        <string>/Desktop/access.txt</string>
    </array>
</dict>
</plist>

Documents文件夹不是用户的主文件夹。在沙盒上下文Documents中,容器中有一个文件夹。

于 2020-10-07T13:27:22.613 回答