前言
由于最近公司的大部分用户的mac系统都覆盖到了10.14以上,而且最近开发从QTCreator 迁移到了Clion上(不得不说Clion确实强大),结果遇到了Clion 调试遇到麦克风/摄像头权限时无法获取权限,导致调试的程序被OSX系统杀掉的问题,并且截止到目前JetBrains都没有解决,而且各个论坛上也没有人发布解决办法,刚好机缘巧合之下有了解决办法,故将之分享给众人。
问题
由于OSX10.14以上对于电脑麦克风、摄像头等系统功能增加了系统安全设置,所有的程序如果需要调用到该设备的都需要获取到对应的权限,不然程序将出现打不开对应设备问题,如果但是运行的程序需要获取到对应权限,需要在Info.plist中增加对应的键值对。(如下所示)
然而对于IDE debug 程序(APP)来说,app是作为IDE的子进程而存在,调试的时候请求的权限是父进程(IDE)向系统申请权限,虽然JetBrains IDE在info.plist中有了对应的键值对,但是还是无法申请到对应设备的权限,截止到目前MacOS的最新版本依然没有解决此问题。
解决办法
在一顿Google之后,无论JetBrains论坛还是其他的论坛遇到这个问题的人都很多,大多都在讨论修改info.plist或者等待JetBrains官方版本更新(不排除有人已经解决但是没有放出方法来),方法很简单,直接通过控制台打开IDE,这样IDE就作为控制台进程的子进程存在,并且请求权限的时候是由控制台申请,这个神奇的问题就解决了!!!下面放出解决图:
然后打开项目调试==>获取权限看到如下图
至此完结撒花