Dov*_*Dov 8 macos nsurl appstore-sandbox
在早期版本的 macOS 中,NSURL从安全范围的书签构造的实例将?applesecurityscope=...在其末尾标记一个查询字符串。我在单元测试中对此进行了检查,因为这是被测功能的要求。现在,从 10.10 Yosemite 开始,我找不到从任何面向公众的属性中NSURL确定它是否具有安全范围的方法。
没有queryorparameterStrings值,并-startAccessingSecurityScopedResource返回YESURL 是否具有安全范围。
这对于测试特别有用,因为我的单元测试不在沙盒环境中运行,但应用程序是,因此函数生成的 URL 必须具有安全范围。
您可以尝试从该 URL 获取安全范围的书签。仅当 url 已在安全范围内时才有效,并且对于“常规”url 将失败:
let isSecurityScoped = (try? url.bookmarkData(options: .withSecurityScope,
includingResourceValuesForKeys: nil,
relativeTo: nil)) != nil
Run Code Online (Sandbox Code Playgroud)
或者,您可以尝试致电url.startAccessingSecurityScopedResource(). 仅当 url 处于安全范围内时,此操作才会成功。
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |