Приложения не отображаются в настройках конфиденциальности камеры и микрофона на MacBook

Приложения не отображаются в настройках конфиденциальности камеры и микрофона на MacBook

Я не могу разрешить использовать камеру и микрофон моего MacBook Pro в различных приложениях (Google Chrome, Slack и т. д.), так как они не отображаются в «Системные настройки -> Безопасность и конфиденциальность -> Микрофон/Камера».

Поскольку нет приложений и нет возможности их добавить, нет и флажков, как описано вэтот документ поддержки Apple.

решение1

Я столкнулся с той же проблемой при попытке записать звук с помощью Microsoft Powerpoint 2011 на macOS 10.14. Powerpoint не отображается в списке приложений с доступом к микрофону (Системные настройки -> Конфиденциальность -> Микрофон).

Обратите внимание, что вы можете сбросить этот список из командной строки (т. е. Терминала) с помощью:

tccutil reset Microphone

Это может помочь вам, а может и нет. В моем случае не помогло.

Помогло то, что я запустил PowerPoint из командной строки черезiTerm(хотя я подозреваю, что использование работает Terminal.appтак же хорошо). Поэтому в командной строке я набрал:

/Applications/Microsoft\ Office\ 2011/Microsoft\ PowerPoint.app/Contents/MacOS/Microsoft\ PowerPoint

Т. е. я запустил исполняемый файл в подпапке Powerpoint /Contents/MacOS. По соглашению, каждое приложение имеет исполняемый файл, то есть вы можете запустить любое приложение таким образом (но имя исполняемого файла обычно будет другим).

Запущенный таким образом, когда я попытался получить доступ к микрофону, Система спросила меня, хочу ли я предоставить iTermдоступ к своему микрофону. После предоставления доступа я смог записать аудио через Powerpoint.

Очевидно, это просто хак, чтобы все заработало. Но иногда хак — это все, что вам нужно.

решение2

Решение

Успешно протестировано на

  • Монтерей 12.2.1
  • БигСур 11.7.4
  • Вентура 13.3, 13.6
  • (Другие версии см. в конце ответа)
  1. На всякий случай сделайте резервную копию базы данных TCC:

    cp ~/Library/Application\ Support/com.apple.TCC/TCC.db ~/TCC.db.bak
    
  2. Я открыл базу данных TCC, запустив:

    sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
    
  3. Я добавил приложение, набрав:

    insert into access
    values 
    ('kTCCServiceMicrophone','<AppBundleURLname>', 0, 2, 2, 1, null, null, null, 'UNUSED', null, null, 1669648527);
    
  4. Закройте соединение с базой данных:

    .quit
    

Значение для замены заполнителя <AppBundleURLname>на шаге 3 выше можно найти, открыв и проверив файл:

/Applications/appname.app/Contents/Info.plist

И обычно это ключи-значения, такие как CFBundleURLNameили CFBundleIdentifier. Например, для приложения WhatsApp MacOS, если вы открываете файл:

/Applications/WhatsApp.app/Contents/Info.plist

то вы найдете что-то вроде:

    <key>CFBundleURLName</key>
    <string>com.WhatsApp.chat</string>

и это означает, что в этом случае вам следует заменить <AppBundleURLname>на com.WhatsApp.chatв Шаге 3 приведенных выше инструкций.

Например

Примечание: Последнее значение во вставленной записи (см. шаг 3) — это простовременная метка(в секундах) вы можете поставить временную метку, соответствующую любой желаемой дате, например, чтобы проверить, какая дата соответствует временной метке 1669648527, вы можете ввести:

$ date --date='@1669648527'
Mon 28 Nov 15:15:27 GMT 2022

Если вы используете другую версию MacOS

В этом случае структура таблицы accessможет быть иной, и вставляемая вами запись может быть немного иной. Вы можете проверить ее структуру с помощью следующих команд:

  • Чтобы сравнить запись, которую вы хотите добавить, с другими существующими записями:

    select * from access ;
    
  • Или, может быть, даже лучше:

    select * from access where service = 'kTCCServiceMicrophone' ;
    
  • Чтобы проверить структуру (например, столбцы) таблицы access:

    .schema access
    

решение3

В моем случае я вообще не получу запрос на разрешение камеры и микрофона. Раздел «Камера» в разделе «Безопасность и конфиденциальность» вообще не будет заполнен ни одним приложением.

Проверил консоль и обнаружил, что каждый раз, когда я пытался использовать любое приложение, которому требовался доступ к камере/микрофону, оно выдавало мне следующую ошибку в консоли:

Политика запрещает запрос REQ:{ID: xxx.xxx.xxx}

и

доступ к kTCCServiceCamera запрещен

Я попробовал метод, показанный@loadbox's ответно мне это не помогло. Оказалось, что у меняЗащита целостности системыотключено. Мне пришлось перезагрузить Mac и запустить в режиме восстановления. Запустил Терминал и снова включил его, введя эти команды:

csrutil enable
reboot

После загрузки машины я запустил Skype и вуаля... Он запросил разрешение на использование камеры. Проблема решена. В зависимости от конфигурации, ваш пробег может отличаться.

решение4

Мне помогло переключение на учетную запись администратора.

В стандартной учетной записи в настройках микрофона было только одно приложение. В учетной записи администратора было более 5 приложений.

Не уверен, связано ли это с тем, что приложение было установлено под учетной записью администратора, или же приложения не запрашивают разрешения должным образом.

Связанный контент