13、Electron 专题(entitlements 配置)

基本介绍

什么是 Entitlements

Entitlements 是 macOS 系统中的一种安全机制,用于定义应用程序可以访问的系统资源和功能。它是一个 XML 格式的属性列表(plist)文件,包含一组键值对,每个键代表一个特定的权限或功能。

在 Electron 应用开发中,entitlements 配置对于 macOS 应用的代码签名和分发至关重要,特别是在启用 hardened runtime 或提交到 Mac App Store 时。

为什么需要 Entitlements

  1. 安全控制:限制应用对系统资源的访问,提高系统安全性
  2. 权限管理:明确声明应用需要的特殊权限
  3. 代码签名要求:macOS 对签名应用有明确的 entitlements 要求
  4. 应用分发:Mac App Store 和外部分发都需要正确的 entitlements 配置

常用配置项

核心权限配置

代码签名相关权限
<?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>
    <!-- 允许即时编译 (JIT) -->
    <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.disable-library-validation</key>
    <true/>
  </dict>
</plist>

这些是 Electron 应用最常见的配置项,因为 Electron 应用通常需要:

  • JIT 权限来执行 JavaScript 代码
  • 未签名可执行内存权限来处理动态代码执行
  • 禁用库验证来加载原生模块

网络权限

<dict>
  <!-- 允许客户端网络访问 -->
  <key>com.apple.security.network.client</key>
  <true/>
  
  <!-- 允许服务器网络访问 -->
  <key>com.apple.security.network.server</key>
  <true/>
</dict>

文件系统权限

<dict>
  <!-- 允许读写用户选择的文件 -->
  <key>com.apple.security.files.user-selected.read-write</key>
  <true/>
  
  <!-- 允许读写下载目录 -->
  <key>com.apple.security.files.downloads.read-write</key>
  <true/>
  
  <!-- 允许访问图片目录 -->
  <key>com.apple.security.assets.pictures.read-only</key>
  <true/>
  
  <!-- 允许访问音乐目录 -->
  <key>com.apple.security.assets.music.read-only</key>
  <true/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老李说技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值