MacOS Mojaveの更新以降、シミュレータで実行するたびにこのアラートが表示されます。
「<AppName>」はマイクにアクセスしたいです。
シミュレーターの実行を停止しています!どうすれば止めることができますか?
私のアプリはマイクを使用せず、ビデオのみを再生します。セキュリティとプライバシー->マイクでXcodeのマイクアクセスを制限することにより、警告ポップアップを修正することができました。
これはXcode 10.2 Betaで解決されました。 CoreSimulator.frameworkがアップグレードされるため、ベータ版をインストールすると古いXcodeバージョンでも修正されるはずです(古いXcodeとの後方互換性は維持されます)。
新しい動作では、Macでマイクアクセスonceが要求されます。その承認(または拒否)は、最初の承認プロンプトの後にダウンロードされた新しいランタイムやインストールされた新しいXcodeを含む、すべてのシミュレータランタイムのすべてのプロセスを対象としています。
通常のTCCルールは、シミュレータ内で引き続き適用されます。実際にオーディオを録音しようとする場合、アプリには、マイクの使用法の説明を含む関連するInfo.plistキーが必要です。これにより、その特定のシミュレーター内でiOS TCCプロンプトが引き続き生成されます。アプリがオーディオのみを再生する場合、iOSによってTCCプロンプトは生成されません。
これを修正したのは、許可しない xcodeのマイクアクセスです。このオプションを選択すると、再起動後にポップアップが表示されなくなりました。
残念ながら、Xcodeは以下で利用できないため、以前の修正は機能しませんでした。
システム環境設定->セキュリティとプライバシー->プライバシー->マイク(ここにはXcodeはリストされていません)
ここには2つの問題があるようです:Xcodeとアプリ自体の両方へのマイクアクセス。
アプリ(またはUITest)は、常に同じ実行ではありませんが、どちらかまたは両方に対してプロンプト(失敗)を表示できます。
アクセスを許可するには、これらのダイアログの両方を承認する必要があります。その後、Xcodeとシミュレータのリセットまたは再起動の間、許可が保持されます。
[システム環境設定]-> [セキュリティとプライバシー]-> [マイク]でXcodeのアクセスが承認されていることを確認できます。この場合、UIにXcodeが表示されます。
ただし、承認済みかどうかにかかわらず、アプリ自体はここのUIには表示されません。
アプリが承認されているかどうか不明な場合は、両方のダイアログが表示されて承認されるまで、ターミナルで「tccutil reset Microphone」を使用してすべてのマイクのアクセス許可をリセットし、アプリ/テストを再実行します。
MacOSの「セキュリティとプライバシー」設定に移動します
左パネルで「マイク」を選択します
右側のパネルでXcodeのオプションを無効にします
Xcodeからではなく、アプリのアイコンからシミュレータでアプリを起動してみてください。ダイアログがもう一度表示されます。回答すると、再び表示されることはありません。