[英]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-only
和com.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.