繁体   English   中英

Finder 同步扩展无法从桌面读取/写入文件

[英]Finder Sync Extension unable to read/write file from Desktop

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

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

该问题已通过在授权密钥中明确添加桌面位置的绝对路径来解决。

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

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

open var directoryURLs: Set<URL>!

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

let rootDirectory = URL(fileURLWithPath: "/")
FIFinderSyncController.default().directoryURLs = [rootDirectory]

该问题已由海报解决,但这是一个示例:(这是基于以下答案: 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文件夹不是用户的主文件夹。 在 Sandbox 上下文中,容器中有一个Documents文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM