macOS:给APP增加摄像头麦克风权限

发布时间 2024-01-02 17:18:06作者: 严_青

前言

作为一名macOS系统下APP开发人员,最近几年一直在使用Qt做跨平台的APP开发.
某一天,在无任何征兆的情况下,QtCreater启动的调试程序突然就再也无法启动设备的摄像头和麦克风了,然后就一拖再拖没有处理
因为之前修了近一个月的陪产假,老婆给生了一个大胖小子,?.今天是2024年第一天上班,没什么事就解决一下吧.

解决

目标

首先我知道权限修改是macOS系统下的数据库文件设置的,所以目标就比较明确了,只需要手动修改数据库文件

搜索

作为一个程序员,第一步就是百度或者Google相关信息,然后就找到了macOS:给 app 添加摄像头权限文章,首先就是拿到作者提供的数据进行尝试,然后结果就是没有权限.
所以下一步就是解文件决权限问题

权限

还是搜索,然后就找到了macOS Monterey终端添加App权限——以QQ、腾讯会议屏幕录制为例,里面提到了需要关闭SIP,然后就需要查找如何进入macOS系统的更新界面(一般重启系统后长按command+R,直到出现相关界面为止),然后在实用工具中打开终端输入

csrutil disable
reboot

修改

不同的系统肯能对应的~/Library/Application\ Support/com.apple.TCC/`` 路径下TCC.db`文件的表结构不同,所以我们可以使用相关的SQL软件打开,或者使用sqlite3命令打开数据库文件

//终端输入sqlite3
.open TCC.db
//第一步查看对应表结构,
select * from access;
//注意!!!,不同系统的表结构字段数目不尽相同,所以下面的命令需要做相应修改
REPLACE INTO access VALUES('kTCCServiceMicrophone','包名',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323,NULL,NULL,'UNUSED',0);
REPLACE INTO access VALUES('kTCCServiceCamera','包名',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323,NULL,NULL,'UNUSED',0);

总结

平心静气,循序渐进

引用

https://blog.csdn.net/cneducation/article/details/111403294
https://juejin.cn/post/7033792167362035749