iOS模拟器每次都要访问麦克风

51
自从更新到macOS Mojave以来,每次我运行模拟器时都会收到以下警告:

"<应用程序名称>"想要访问麦克风。

这会阻止模拟器的运行! 我该怎么办?

Mojave security alert!


6
已知的漏洞。 - russbishop
2
@russbishop 你怎么知道这是一个已知的 bug? - kikeenrique
62
因为我写了这个错误。 - russbishop
1
@russbishop 这个问题在最新的10.2版本中会被修复吗? - ooops
5
是的,这在10.2版本中已经修复。 - russbishop
显示剩余8条评论
8个回答

26

对我有用的是将硬件音频输入更改为内置麦克风

我认为发生的事情是,当你授权访问时,它会更改音频输入到你的耳机或MacBook。

我的担忧是我在看教程,而且它一直在更改音频频率,这一直困扰着我。

内置麦克风


11

我的应用程序不使用麦克风,它只播放视频。我通过在“安全与隐私”->“麦克风”中限制Xcode的麦克风访问权限来解决了警报弹出的问题。


而且这给了你什么?即使麦克风未选中,它仍然一直询问您,因此针对Xcode。 - user25

6
这个问题已经在Xcode 10.2 Beta中解决。安装beta版也可以修复旧版Xcode的问题,因为CoreSimulator.framework将会升级(并且向后兼容旧版Xcode)。
新的行为会在你的Mac上提示一次麦克风访问权限。该批准(或拒绝)覆盖了包括下载的新运行时和初始批准提示之后安装的新Xcodes在内的所有模拟器进程。
在模拟器内部仍然适用正常的TCC规则。如果你尝试录制音频,则你的应用程序必须具有相关的Info.plist键和麦克风使用说明。这将在特定的模拟器内部继续生成iOS TCC提示。如果你的应用程序只播放音频,则iOS不会生成任何TCC提示。

在运行自动化 UI 测试时有没有一种方法可以忽略提示框?当我手动忽略过一次提示框后,我的测试在本地机器上通过了,但是在使用 CI 服务时失败了,因为每次都在新的容器中运行。 - Steven Vandeweghe
请查看雷达 48882952 :-) - Steven Vandeweghe
Xcode 12仍然存在这个bug,只是...不同了。第一次运行模拟器(使用xcode)会打开麦克风。如果我关闭模拟器并再次使用xcode运行它,则不再访问麦克风。如果你问我,这很可怕。 - thedp

2

对我有用的解决方法是不允许xcode访问麦克风。选择此选项后,弹出窗口在进一步重启后不再出现。

不幸的是,以前的修复方法无法解决问题,因为在以下位置中找不到xcode:

系统偏好设置 -> 安全性与隐私 -> 隐私 -> 麦克风(此处未列出xcode)


1
  1. 在macOS上前往“安全与隐私”设置

  2. 在左侧面板中选择“麦克风”

  3. 在右侧面板中禁用Xcode选项


5
我的MacBook Pro上没有Xcode在列表中显示。我使用的是MacOS 10.14.2操作系统。 - Peter Suwara
1
我的麦克风设置中有Xcode,但它并不能解决这个问题。 - Floam

1
这里似乎有两个问题:Xcode和应用程序本身的麦克风访问权限。
您的应用程序(或UITest)可以提示(失败)其中一个或两个,但不总是在同一次运行中。
这两个对话框都必须获得批准才能允许访问,在此之后,权限将在Xcode和模拟器重置或重新启动之间保持。
您可以在“系统偏好设置 -> 安全性与隐私 -> 麦克风”中确认已经为Xcode批准了访问权限,在那里您应该在UI中看到Xcode。
然而,应用程序本身无论是否被批准,都不会出现在此处的UI中。
如果您不确定应用程序是否已经获得批准,请在终端中使用“tccutil reset Microphone”重置所有麦克风权限,并重新运行您的应用程序/测试,直到两个对话框都显示并获得批准。

0

尝试从应用程序图标而非Xcode启动模拟器上的应用程序。对话框将再次出现。回答它,它就不会再出现了。


3
对我没有用,每次代码更改时都会询问。 - Nuthinking

-2
在模拟器中,前往“设置”->“通用”->“重置”->“重置位置与隐私”,然后在提示时点击“重置警告”。

是的,我想到了这个部分,但是Xcode在我的电脑上没有显示出来。为什么呢? - Udi Levy
请在系统偏好设置中查看,而不是在Xcode中。 - Mani
在模拟器上,只需单击“不允许”即可。 - Mani
2
@Mani 真遗憾,每天我运行应用程序时都会被询问。这很烦人。点击“不允许”除了在下一次构建之前移除弹出窗口外,没有任何作用。每次应用程序播放声音时,它总是会询问第一次。 - Hedylove
我已经更新了我的解决方案,目前这个对我有效。请尝试使用这个。 - Mani

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