macOS Catalina + Xcode 11 从项目中读取文件时出错
Posted
技术标签:
【中文标题】macOS Catalina + Xcode 11 从项目中读取文件时出错【英文标题】:macOS Catalina + Xcode 11 Error on reading file from project 【发布时间】:2019-10-14 08:29:33 【问题描述】:使用最新的 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
读取文件。
有没有更好的解决方法?喜欢调整任何设置以允许它像旧版本一样从自定义路径读取文件?
【问题讨论】:
【参考方案1】:您可以尝试查看 SystemPreferences > Security&Privacy > Privacy 选项卡。从那里,向下滚动到“文件和文件夹”
就我个人而言,我没有时间浪费在弄清楚新文件权限应该如何工作上,所以我让 Xcode 拥有完整的磁盘权限。 (“文件和文件夹”正上方是“全盘访问”。
当然,这解决了我所有的问题……在我有机会使用新的文件权限后,我可能会撤销该访问权限并为其提供明确的文件夹访问权限。
【讨论】:
我已将 Xcode、模拟器、构建服务器等所有内容添加到全盘访问设置中。我仍然收到读取权限错误。我正在尝试在我的模拟器之外读取文件。【参考方案2】:如果有人还在为此苦苦挣扎,我已将我的所有项目移到 ~/Documents/
之外。
奇怪的是~/Documents/
下的项目没有被要求读取权限,其他路径会!
我最终把我所有的项目都放在了~/workspace/
** 对于不知道的人,~/
表示/Users/your username/
【讨论】:
【参考方案3】:在项目设置的应用沙盒中的签名和功能下检查您的文件访问设置。例如,我无法访问/Users/Bert/Downloads
中的文件,即使在系统偏好设置中的安全和隐私中打开了全盘访问。我必须在 App Sandbox 设置中授予对下载文件夹的读取权限。
【讨论】:
以上是关于macOS Catalina + Xcode 11 从项目中读取文件时出错的主要内容,如果未能解决你的问题,请参考以下文章
Swift UI 实时预览画布不适用于 macOS Catalina 和 Xcode 11.0
辅助功能检查器无法在 MacOS Catalina 和 Mojave 上的 Xcode 11.x、iOS 13.x 上运行
升级 Xcode 11 beta 7?先把 macOS Catalina 也升了;滴滴跨端框架正式发布;Lookin 手机端开源
升级到MacOS Catalina 10.15后尝试从Xcode 11.1部署到设备时,FIPS出现两个错误
MacOS Catalina 10.15.4 版中的“Spotlight 意外退出”,安装 Xcode 12 后发生此崩溃
npm install 并在 node-gyp 重建时失败,使用 ``gyp: No Xcode or CLT version detected!``` 由新的 macos catalina 更新引起