管理员权限(windows)
如果有修改用户注册表的需求, 需要获取管理员权限, 可以在 electron-builder 里面设置
_10 requestedExecutionLevel: requireAdministrator
程序在启动的时候就会请求管理员权限
媒体权限
如果要获取摄像头和麦克风的权限, 首先要创建一个 plist , plist 里面可以指定以下的权限 
plist 如下所示
_16<?xml version="1.0" encoding="UTF-8"?>
_16<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
_16 <key>com.apple.security.cs.allow-jit</key>
_16 <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
_16 <key>com.apple.security.cs.allow-dyld-environment-variables</key>
_16 <key>com.apple.security.device.audio-input</key>
_16 <key>com.apple.security.device.camera</key>
💡提示
plist 必须完整, 如果你删掉了一些内容, 那么应用会崩溃😭
然后配置 electron-builder
_10 hardenedRuntime: true # 启用 hardenedRuntime
_10 entitlements: entitlements.mac.plist # plist 文件路径
辅助功能
如果你的 electron 需要调用一些 .node 文件去做操作,比如锁屏,那就要在 plist 里面指定 disable-library-validation
_18<?xml version="1.0" encoding="UTF-8"?>
_18<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
_18 <key>com.apple.security.cs.allow-jit</key>
_18 <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
_18 <key>com.apple.security.cs.allow-dyld-environment-variables</key>
_18 <key>com.apple.security.device.audio-input</key>
_18 <key>com.apple.security.device.camera</key>
_18 <key>com.apple.security.cs.disable-library-validation</key>
在应用中请求并确认权限
_10const isCameraAccessGranted = await systemPreferences.askForMediaAccess(
可以根据上面的权限状态弹出提示框来提示用户打开权限
Windows 在权限配置上比较简单, 直接在应用中查看是否有权限即可,默认是有的
_10const isCameraAccessGranted =
_10 systemPreferences.getMediaAccessStatus("camera") === "granted"