我无法允许我的 MacBook Pro 的摄像头和麦克风在不同的应用程序(Google Chrome、Slack 等)中使用,因为它们没有出现在“系统偏好设置 -> 安全和隐私 -> 麦克风/摄像头”中。
由于没有应用程序,也没有办法添加它们,因此没有勾选框,如此 Apple 支持文档。
答案1
当我尝试在 macOS 10.14 上使用 Microsoft Powerpoint 2011 录制音频时,我遇到了同样的问题。Powerpoint 未显示在可以访问麦克风的应用程序列表中(系统偏好设置 -> 隐私 -> 麦克风)。
请注意,您可以使用以下命令从命令行(即终端)重置此列表:
tccutil reset Microphone
这可能对你有帮助,也可能没用。就我的情况来说,没用。
有帮助的是从命令行启动 Powerpoint终端(尽管我怀疑,使用Terminal.app
效果也一样好)。因此,在命令行上,我输入了:
/Applications/Microsoft\ Office\ 2011/Microsoft\ PowerPoint.app/Contents/MacOS/Microsoft\ PowerPoint
即,我执行了 Powerpoint 子文件夹中的可执行文件/Contents/MacOS
。按照惯例,每个应用程序都有一个可执行文件,这意味着您可以通过这种方式启动每个应用程序(但可执行文件的名称通常会有所不同)。
通过这种方式启动后,当我尝试访问麦克风时,系统会询问我是否要授予iTerm
我麦克风访问权限。授予访问权限后,我就可以通过 Powerpoint 录制音频了。
显然,这只是一个让事情顺利进行的黑客攻击。但有时黑客攻击就是你所需要的。
答案2
解决方案
成功测试
- 蒙特雷 12.2.1
- BigSur 11.7.4
- 文图拉 13.3, 13.6
- (其他版本见答案底部)
制作 TCC 数据库的备份,以防万一:
cp ~/Library/Application\ Support/com.apple.TCC/TCC.db ~/TCC.db.bak
我通过运行以下命令打开了 TCC 数据库:
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
我通过输入以下内容添加了应用程序:
insert into access values ('kTCCServiceMicrophone','<AppBundleURLname>', 0, 2, 2, 1, null, null, null, 'UNUSED', null, null, 1669648527);
关闭与数据库的连接:
.quit
<AppBundleURLname>
通过打开并检查文件可以找到替换上述步骤 3 中的占位符的值:
/Applications/appname.app/Contents/Info.plist
通常它是像CFBundleURLName
或 这样的值键CFBundleIdentifier
。例如,对于 WhatsApp MacOS 应用程序,如果您打开文件:
/Applications/WhatsApp.app/Contents/Info.plist
然后你会发现类似这样的内容:
<key>CFBundleURLName</key>
<string>com.WhatsApp.chat</string>
这意味着在这种情况下您应该在上述说明的第 3 步中用<AppBundleURLname>
进行替换。com.WhatsApp.chat
例如
笔记: 插入记录中的最后一个值(参见步骤 3)只是一个时间戳(以秒为单位),您可以输入与任何您想要的日期相对应的时间戳,例如要检查与时间戳 1669648527 相对应的日期,您可以输入:
$ date --date='@1669648527'
Mon 28 Nov 15:15:27 GMT 2022
如果您运行的是其他 MacOS 版本
在这种情况下,表的结构access
可能会有所不同,并且您插入的记录可能会有些不同。您可以使用以下命令检查其结构:
要将您想要添加的记录与其他现有记录进行比较:
select * from access ;
或者也许更好:
select * from access where service = 'kTCCServiceMicrophone' ;
检查
access
表的结构(例如列):.schema access
答案3
就我而言,我根本无法获得相机、麦克风权限提示。安全和隐私中的相机部分根本不会填充任何应用。
检查控制台并发现每次我尝试使用任何需要摄像头/麦克风访问的应用程序时,它都会在控制台中不断向我抛出以下错误:
策略不允许提示 REQ:{ID:xxx.xxx.xxx}
和
访问 kTCCServiceCamera 被拒绝
我尝试了显示的方法@loadbox 的回答但对我不起作用。结果我发现系统完整性保护已禁用。我不得不重新启动 Mac 并以恢复模式启动。启动终端并通过输入以下内容重新启用它:
csrutil enable
reboot
机器启动后,我启动了 Skype,然后……它提示需要相机权限。问题解决了。根据您的配置,您的里程可能会有所不同。
答案4
切换到管理员帐户就帮我解决了这个问题。
标准帐户的麦克风设置中只有一个应用程序。管理员帐户有 5 个以上的应用程序。
不确定是否因为该应用程序安装在管理员帐户上,或者应用程序未正确请求权限。