Finder 同步扩展无法从桌面 read/write 文件
Finder Sync Extension unable to read/write file from Desktop
我正在尝试使用 Finder 同步扩展上下文菜单从桌面读取文件,但它没有按预期工作。我已经添加了所有必需的沙箱设置和其他文件位置(如下载)工作正常,但桌面文件不是。
read/write 个文件是否有与桌面相关的任何其他设置?
桌面位置是否包含在 FinderSync 控制器的 directoryURLs
属性 中?
/*
For each directory present in directoryURLs, the extension can receive -beginObservingDirectoryAtURL: and -endObservingDirectoryAtURL: for that directory and for any directories inside. Always set directoryURLs when the extension starts; if there are no directories to be watched, pass the empty set.
*/
open var directoryURLs: Set<URL>!
您应该确定问题是由于沙盒访问冲突造成的,还是 FinderSync 扩展本身的访问级别滥用 API:
let rootDirectory = URL(fileURLWithPath: "/")
FIFinderSyncController.default().directoryURLs = [rootDirectory]
问题已通过在授权密钥中明确添加桌面位置的绝对路径得到解决。
问题已通过海报解决,但这里有一个例子:
(这是基于以下答案:)
主要是:
可以直接从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
文件夹不是用户的主文件夹。在沙盒上下文中,容器中有一个 Documents
文件夹。
我正在尝试使用 Finder 同步扩展上下文菜单从桌面读取文件,但它没有按预期工作。我已经添加了所有必需的沙箱设置和其他文件位置(如下载)工作正常,但桌面文件不是。
read/write 个文件是否有与桌面相关的任何其他设置?
桌面位置是否包含在 FinderSync 控制器的 directoryURLs
属性 中?
/*
For each directory present in directoryURLs, the extension can receive -beginObservingDirectoryAtURL: and -endObservingDirectoryAtURL: for that directory and for any directories inside. Always set directoryURLs when the extension starts; if there are no directories to be watched, pass the empty set.
*/
open var directoryURLs: Set<URL>!
您应该确定问题是由于沙盒访问冲突造成的,还是 FinderSync 扩展本身的访问级别滥用 API:
let rootDirectory = URL(fileURLWithPath: "/")
FIFinderSyncController.default().directoryURLs = [rootDirectory]
问题已通过在授权密钥中明确添加桌面位置的绝对路径得到解决。
问题已通过海报解决,但这里有一个例子: (这是基于以下答案:)
主要是:
可以直接从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
文件夹不是用户的主文件夹。在沙盒上下文中,容器中有一个 Documents
文件夹。