「<program>」想要访问您的文档文件夹,在VS Code和macOS Catalina中的提示信息

31
我正在使用来自Microsoft的C/C++官方扩展的Visual Studio Code编写C程序,在macOS Catalina 10.15.3下运行。项目文件夹位于我的主目录中Documents文件夹内的路径下。
每次尝试调试代码时,都会弹出一个确认窗口,其中包含消息“<program>”想要访问您的Documents文件夹。我必须点击OK按钮才能继续。
这会减慢我的工作流程,并且会在系统偏好设置=>安全性与隐私=>文件和文件夹(奇怪的是,它不允许我从列表中删除文件--我稍后会在Ask Different上提出这个问题,但这不是主要问题:我想彻底摆脱这个确认窗口。)中混乱列表。
有没有办法直接进入调试会话,而无需每次都点击此消息上的OK?
C/C++扩展的GitHub问题跟踪器中显然存在一个issue,与同样的问题有关,建议解决方法是授予对终端的访问权限。但是,这对我并没有解决问题--实际上,对终端已经授予了访问Documents文件夹的权限,因为我每天都使用终端。
6个回答

22

我已经寻找了很久一个好的解决方案,可以让我将项目文件夹保留在桌面上,但没有找到。显然,桌面、文档和下载文件现在更加严格。我认为macOS认为任何试图访问这三个文件夹中其他文件的更改都可能是恶意的,他们试图充当守门员。 显然,这是作为安全更新的一部分而完成的,以加强安全性,但对于开发人员来说,这只是一个不必要的问题。

无论如何,我看到的唯一两个解决方案(我个人使用Xcode)是将文件夹移动到前面提到的三个文件夹之外,或者通过终端应用程序直接运行,而不是通过IDE。这显然并不完美,但它能够正常工作。 我不喜欢不再将重要项目放在桌面上,但在我找到更好的解决方案之前,我想我会这样做。


就我所知:桌面、文档和下载文件夹通常会与iCloud同步。类似于不将输出二进制文件提交到版本控制系统的最佳实践,我也不喜欢上传到云存储(这些云存储也倾向于进行版本控制)。顺便说一下,GitHub Desktop在Mac上默认使用文档文件夹有点不太方便,但最好还是避免在开发中使用这些目录。 - Nicholas Miller

4

将完全磁盘访问权限授予您正在构建的应用程序。这将使弹出窗口消失。

系统偏好设置 > 安全性与隐私 > 隐私 > 完全磁盘访问


3
请添加更多关于如何授权应用程序的细节。 - Amir Fo
2
如果您正在从VS Code运行/执行某些内容,则此方法无法正常工作,因为它需要对VS Code运行的可执行文件进行额外的权限控制才能完成任务。例如,如果您正在运行C++文件,则仍然需要请求权限并出现对话框。 - Shaswat Lenka
1
确认:在 Monterey 12.5 和 VS Code 1.74.00 上似乎不再起作用。 - rgos
已确认:将开发文件夹移出“文档”文件夹即可消除弹出窗口。请参见:https://dev59.com/D6v2oIgBc1ULPQZFSCBs - rgos

3

我不知道你的设置情况,但我遇到了同样的问题。对我来说,这只是我的工作目录上一个简单的离散权限问题。

chown -R <user>:everyone ~/Documents/C

右键点击 Finder / Documents / C 并选择“获取信息”,确保您的组具有您想要授予的任何权限。

enter image description here

现在我的ctrl+shift+B可以无提示构建。您可能还想从“系统偏好设置/安全性与隐私/隐私/文件和文件夹”中删除通过提示允许的任何二进制文件。

3

在我的 macOS 12.6 上运行良好。

系统偏好设置 -> 安全性与隐私 -> 隐私 (选项卡) -> 完整磁盘访问权限 -> Xcode.app (或其他应用程序)

必须选中复选框才能消除“”想要访问您的文档文件夹”警告。

在此输入图片描述


3
这在 MacOS 13.1 上没有起作用。我已经授予了完全磁盘访问权限,但弹出窗口“...想要访问您的文档文件夹中的文件”仍然每次出现。 - Mote Zart

0
尝试使用终端中的LLDB调试C程序。像其他答案建议的那样,给予终端完全磁盘访问权限解决了这个愚蠢的MacOS问题。我正在运行Sonoma 14.1版本。

0

在“系统偏好设置” > “安全性与隐私” > “隐私”(“选项卡”)下,您将看到左侧:

  • 文件和文件夹
    • 这是macOS一直在跟踪您对这些愚蠢的“希望访问”的通知的响应。点击窗口左下角的解锁图标,输入您的密码验证身份,并使用+/-按钮按需清理此列表。
  • 完全磁盘访问权限
    • 这里可以列出您决不想为其看到这些愚蠢的“希望访问”通知的特定应用程序。例如,我单击了加号按钮并添加了iTerm,因为我会在整个系统中使用它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接