
Я не могу разрешить использовать камеру и микрофон моего 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
- (Другие версии см. в конце ответа)
На всякий случай сделайте резервную копию базы данных TCC:
cp ~/Library/Application\ Support/com.apple.TCC/TCC.db ~/TCC.db.bak
Я открыл базу данных TCC, запустив:
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
Я добавил приложение, набрав:
insert into access values ('kTCCServiceMicrophone','<AppBundleURLname>', 0, 2, 2, 1, null, null, null, 'UNUSED', null, null, 1669648527);
Закройте соединение с базой данных:
.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 приложений.
Не уверен, связано ли это с тем, что приложение было установлено под учетной записью администратора, или же приложения не запрашивают разрешения должным образом.