我们要求在Mac应用程序中使用音频和摄像头的许可。一般来说,这可以。
但是有一个怪癖。如果我们从另一个应用程序(例如从终端-
出现权限提示时,被标识为请求访问的应用是顶级应用,即。终端,而不是我们的应用名称。
如果我们的应用程序独立于finder(例如)运行,则正确的标题会显示在权限提示中。
我认为可能是缺少CFBundleDisplayName,但这无济于事。
void PERMISSIONS::checkAudioPermission() const
{
if (@available(macOS 10.14, *))
{
AVAuthorizationStatus audioAuthStatus =
[AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
if (audioAuthStatus != AVAuthorizationStatusAuthorized)
{
// If the user has not definitively said Yes or No, ask them to do so.
if (audioAuthStatus == AVAuthorizationStatusNotDetermined)
{
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeAudio
completionHandler:^(BOOL granted)
{
if (granted)
答案 0 :(得分:2)
不幸的是,这实际上是Apple从未修复的漏洞,可以被恶意软件利用。 Patrick Wardle在他的网站上对此进行了讨论:
https://objective-see.com/blog/blog_0x2F.html
因此,我强烈建议您提交一个错误,以便可以对其进行修复。