Electron-Mac-摄像头麦克风硬件权限问题
背景
electron项目在mac端使用硬件设备无权限问题
解决办法
Step1. 修改yml配置文件
# electron-build-prod.yml
// ...
mac:
// ...
hardenedRuntime: true
entitlements: "build/entitlements.mac.plist"
extendInfo:
NSMicrophoneUsageDescription: "XXX需要使用您的麦克风"
NSCameraUsageDescription: "XXX需要使用您的摄像头"
这两个属性用于说明你的应用为什么要申请权限
hardenedRuntime 这个属性,在 electron-builder 的 21.1.3 版本已经默认为 true ,而在 21.1.2 ~ 20.41.0 版本里,这个属性的默认值是 false;
申请的行为需要利用 entitlements 属性(指向下文的entutlements.mac.plist文件);
Step2. 修改entutlements.mac.plist文件
# entutlements.mac.plist
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>\
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
</dict>
</plist>
除了要指定申请摄像头、麦克风的权限,需要以下的属性:
当你开启了 hardenedRuntime 来加强应用的安全性时,那么你需要把这个安全性放宽一点。也就是说你需要在 entitlements.mac.plist 里在指定一下下面的属性:

浙公网安备 33010602011771号