Ответ 1
Мое приложение не использует микрофон, оно только воспроизводит видео. Мне удалось исправить всплывающее окно предупреждения, ограничив доступ к микрофону для XCode в безопасности и конфиденциальности → Микрофон
После обновления MacOS Mojave, я получаю это предупреждение каждый раз, когда я запускаю на симуляторе:
<AppName> хотел бы получить доступ к микрофону.
Это мешает симулятору работать! Как я могу это остановить?
Мое приложение не использует микрофон, оно только воспроизводит видео. Мне удалось исправить всплывающее окно предупреждения, ограничив доступ к микрофону для XCode в безопасности и конфиденциальности → Микрофон
Попробуйте запустить приложение на симуляторе не из Xcode, а из значка приложения. Диалог появится еще раз. Ответь, и он больше не появится.
Зайдите в настройки "Безопасность и конфиденциальность" в macOS
Выберите "Микрофон" на левой панели
На правой панели отключите опцию для Xcode
Кажется, здесь есть две проблемы: доступ к микрофону как для Xcode, так и для самого приложения.
Ваше приложение (или UITest) может запросить (не выполнить) одно или оба, но не всегда при одном запуске.
Оба эти диалоговых окна должны быть одобрены, чтобы разрешить доступ, после чего разрешение сохраняется между XCode и Simulator, сбрасывающим или перезапускающим.
Вы можете подтвердить, что доступ был одобрен для XCode в Системных настройках → Безопасность и Privacy-> Микрофон, где вы должны увидеть XCode в пользовательском интерфейсе.
Однако само приложение, одобренное или нет, не будет отображаться в пользовательском интерфейсе.
Если вы не уверены, что приложение было одобрено, сбросьте все разрешения микрофона с помощью "tccutil reset Microphone" в Терминале и перезапустите ваше приложение/тест, пока оба диалога не будут показаны и одобрены.
Это было решено в Xcode 10.2 Beta. Установка бета-версии также должна исправить ее для более старых версий Xcode, поскольку CoreSimulator.framework будет обновлен (и останется обратно совместимым со старыми X-кодами).
Новое поведение запрашивает доступ к микрофону один раз на вашем Mac. Это утверждение (или отказ) распространяется на все процессы во всех средах выполнения Simulator, включая новые загруженные среды выполнения и новые коды X, установленные после первоначального приглашения на утверждение.
Обычные правила TCC продолжают применяться внутри Симулятора. Ваше приложение должно иметь соответствующие ключи Info.plist с описанием использования микрофона, если вы действительно пытаетесь записать звук. Это продолжит генерировать приглашение iOS TCC внутри этого конкретного симулятора. Если ваше приложение воспроизводит только звук, то iOS не будет генерировать запросы TCC.
То, что исправило это для меня, было, чтобы Не Разрешить доступ к микрофону для xcode. После выбора этой опции всплывающее окно больше не появляется после перезапуска.
К сожалению, предыдущие исправления не работали, так как Xcode не был доступен в:
Системные настройки → Безопасность и конфиденциальность → Конфиденциальность → Микрофон (здесь нет кода Xcode)
То, что работало для меня, было изменить аппаратный аудио вход на внутренний микрофон. Я верю, что когда вы предоставляете доступ, он изменяет аудиовход на наушники или MacBook. Меня беспокоило то, что я смотрю учебник, и он продолжает изменять частоту звука, и это продолжало беспокоить меня.
В симуляторе перейдите в "Настройки" → "Основные" → "Сброс" → "Сбросить местоположение и конфиденциальность", а затем нажмите "Сбросить предупреждения" при появлении запроса.