赞助登录提交

← 全部工具

权限说明工具

粘贴 codesign 打印的内容,或你的 .entitlements 文件。它就在本页上读取,不会发送到任何地方。

权限说明工具

试试示例:

功能

权限(entitlements)是你的 Mac 应用被签署时带有的许可:它是否在 App Sandbox 中运行,能访问哪些文件夹和设备,关闭了哪些硬化运行时保护,以及使用了哪些 Apple 服务。它们写在你的 .entitlements 文件里,最终进入签名。这个工具读取你粘贴的文本,找出每一项权限及其值,并用大白话说明它允许什么。它先列出会导致公证失败的,然后是 App Review 或谨慎的用户会问到的,最后是普通的。

要运行的命令

codesign -d --entitlements - YourApp.app
codesign -d --entitlements - --xml YourApp.app

请对你要发布的构建运行。Xcode 的调试构建通常带有 com.apple.security.get-task-allow,而发布构建没有。要检查辅助程序或扩展,请把命令指向那个包。

每种结果的含义

标记含义
修复公证会拒绝它,或者 macOS 不会运行带有它的第三方应用。
外观硬化运行时的例外、沙盒的例外、关闭的沙盒或测试设置。允许使用,但只有应用确实需要时才保留。
正常App Sandbox 已开启。
注意一项普通权限。请确认应用确实用到了它。

来源:Apple Developer,Entitlements、App Sandbox、Hardened Runtime 和 Resolving common notarization issues,均于 2026年11月6日 阅读。

运作方式

这只是在本页上运行的几条纯文本规则。它读取 .entitlements 文件或 codesign --xml 里的 XML,以及较新的 macOS 上 codesign 打印出的带方括号的 [Key] 和 [Value] 行。如果你只粘贴键名,它会解释这些键。它认识 50 个常见权限。其他的会标为不在它的列表中,而不是去猜。它无法判断硬化运行时是否开启,因为那是签名标志,不是权限:请在 codesign -dv 的输出里找 flags=0x10000(runtime)。

问题

Mac 上的权限(entitlements)是什么?

它们是写入应用代码签名的许可。它们说明应用是否在 App Sandbox 中运行,能使用哪些文件、设备和 Apple 服务,以及关闭了哪些硬化运行时保护。

怎么查看一个应用的权限?

在终端里运行 codesign -d --entitlements - 加上应用的路径。加上 --xml 可以把同样的列表以属性列表格式输出。

为什么我的应用因为 get-task-allow 被公证拒绝?

该权限允许调试器附加,Xcode 会把它加到调试构建中。请归档发布构建,或从你签名用的权限中移除它,然后再次提交。

Mac 应用需要 App Sandbox 吗?

只对 Mac App Store 有要求。你用 Developer ID 自己销售的应用可以不用它,不过为了公证,仍然需要硬化运行时。

我粘贴的内容会被发送到别处吗?

不是。文本只在本页面读取,不会发送任何内容。

相关内容