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
读取文件。
有更好的解决方法吗?喜欢调整任何设置以允许它像旧版本一样从自定义路径读取文件吗?
您可以尝试查看“系统偏好设置”>“安全和隐私”>“隐私”选项卡。从那里向下滚动到 "Files and Folders" <-- 在那里您可以看到程序和它们在 Catalina 中被授予访问权限的文件夹。
就个人而言,我没有时间浪费在弄清楚新文件权限应该如何工作,所以我让 Xcode 拥有完整的磁盘权限。 ("files and folders" 正上方是 "Full Disk Access"。
当然,这解决了我所有的问题...在我有机会使用新的文件权限后,我可能会撤销该访问权限并为其提供明确的文件夹访问权限。
在签名和功能下检查项目设置中应用沙盒中的文件访问设置。例如,我无法访问 /Users/Bert/Downloads
中的文件,即使在“系统偏好设置”中的“安全和隐私”中打开“完全磁盘访问”之后也是如此。我必须在 App Sandbox 设置中授予对下载文件夹的读取权限。
好吧,如果有人仍在为此苦苦挣扎,我已将所有项目移到 ~/Documents/
之外
奇怪的是 ~/Documents/
下的项目没有获得读取权限,其他路径需要!
我最终将我所有的项目都放在 ~/workspace/
下
** 对于那些不知道的人,~/
意味着 /Users/{your username}/
升级到最新的 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
读取文件。
有更好的解决方法吗?喜欢调整任何设置以允许它像旧版本一样从自定义路径读取文件吗?
您可以尝试查看“系统偏好设置”>“安全和隐私”>“隐私”选项卡。从那里向下滚动到 "Files and Folders" <-- 在那里您可以看到程序和它们在 Catalina 中被授予访问权限的文件夹。
就个人而言,我没有时间浪费在弄清楚新文件权限应该如何工作,所以我让 Xcode 拥有完整的磁盘权限。 ("files and folders" 正上方是 "Full Disk Access"。
当然,这解决了我所有的问题...在我有机会使用新的文件权限后,我可能会撤销该访问权限并为其提供明确的文件夹访问权限。
在签名和功能下检查项目设置中应用沙盒中的文件访问设置。例如,我无法访问 /Users/Bert/Downloads
中的文件,即使在“系统偏好设置”中的“安全和隐私”中打开“完全磁盘访问”之后也是如此。我必须在 App Sandbox 设置中授予对下载文件夹的读取权限。
好吧,如果有人仍在为此苦苦挣扎,我已将所有项目移到 ~/Documents/
奇怪的是 ~/Documents/
下的项目没有获得读取权限,其他路径需要!
我最终将我所有的项目都放在 ~/workspace/
** 对于那些不知道的人,~/
意味着 /Users/{your username}/