繁体   English   中英

macOS Catalina + Xcode 11 从项目中读取文件时出错

[英]macOS Catalina + Xcode 11 Error on reading file from project

在使用最新的 Xcode 11 升级到 macOS Catalina 后,我无法在进行单元测试时直接从用户路径读取文件,例如: PROJECT_DIR + "/FolderX/myFile.json" ,我不断收到错误Thread 1: EXC_BAD_ACCESS (code=1, address=0x8)

当我尝试使用自定义路径打开 couchbase lite 数据库时,也会发生这种情况。 错误: error opening:: 14 Cannot open database, Error: Error Domain=SQLite Code=14 "unable to open database file" UserInfo={NSLocalizedDescription=unable to open database file}

我相信这是一个问题,因为我的模拟器和最新的 Catalina 之间存在读写访问权限。

我目前的解决方法将我的文件和数据库添加到目标成员资格并直接从[NSBundle bundleForClass:[self class]].bundlePath读取文件 有没有更好的解决方法? 就像调整任何设置以允许它像旧版本一样从自定义路径读取文件?

您可以尝试查看 SystemPreferences > Security&Privacy > Privacy 选项卡。 从那里,向下滚动到“文件和文件夹”<--在那里你可以看到程序和它们在 Catalina 中被授予访问权限的文件夹。

就个人而言,我没有时间浪费在弄清楚新的文件权限应该如何工作,所以我让 Xcode 拥有完整的磁盘权限。 (“文件和文件夹”的正上方是“全盘访问”。

当然,这解决了我所有的问题......在我有机会使用新的文件权限后,我可能会撤销该访问权限并为其提供明确的文件夹访问权限。

好吧,如果有人还在为此苦苦挣扎,我已经将我所有的项目移到了~/Documents/之外

奇怪的是~/Documents/下的项目没有被要求读取权限,其他路径会! 我最终把我所有的项目都放在~/workspace/

** 对于那些不知道的人, ~/表示/Users/{your username}/

检查项目设置中应用沙箱中的文件访问设置,在签名和功能下。 例如,我无法访问/Users/Bert/Downloads中的文件,即使在系统偏好设置中的安全和隐私中打开了全盘访问。 我必须在 App Sandbox 设置中授予对下载文件夹的读取权限。

项目设置截图

暂无
暂无

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

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