You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS全局鼠标监听与输入模拟的权限配置合规咨询

macOS全局鼠标监听与键盘模拟应用的隐私安全配置指南

1. 实现全局鼠标点击监听与输入模拟所需的具体Entitlements

你当前的Entitlements包含了不必要的权限(如USB、网络客户端、虚拟化临时例外),需精简为以下必要项:

  • com.apple.security.accessibility: 设置为true,这是实现全局鼠标监听和键盘输入模拟的核心权限,必须开启。
  • com.apple.security.app-sandbox: 若计划上架App Store则建议开启,否则可按需选择;开启时需确保仅保留必要权限。
  • 若应用通过Apple Events辅助实现功能(如调用System Events),需保留com.apple.security.automation.apple-events及对应的临时例外数组;若仅依赖Accessibility框架,可移除该项。

修正后的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>
        <key>com.apple.security.accessibility</key>
        <true />
        <key>com.apple.security.app-sandbox</key>
        <true />
        <!-- 仅当使用Apple Events时保留以下项 -->
        <key>com.apple.security.automation.apple-events</key>
        <true />
        <key>com.apple.security.temporary-exception.apple-events</key>
        <array>
            <string>com.apple.systemevents</string>
        </array>
    </dict>
</plist>

2. 是否需要启用App Sandbox

建议启用App Sandbox,这是苹果App Store上架的强制要求,同时能提升应用安全性和用户信任度。只要配置正确的Accessibility权限,全局鼠标监听和键盘模拟功能可在沙箱环境下正常运行。若遇到沙箱限制导致的功能异常,可检查是否遗漏必要权限声明,或在非上架场景下暂时关闭沙箱调试。

3. Info.plist中需配置的键值

你当前使用的NSAppleScriptUsageDescription不适用于Accessibility权限申请,需替换为正确的权限说明键:

  • NSAccessibilityUsageDescription: 必填,需清晰向用户说明申请Accessibility权限的具体用途,避免模糊表述。
  • LSApplicationCategoryType: 保持public.app-category.utilities即可,符合工具类应用分类。
  • 若使用Apple Events,需添加NSAppleEventsUsageDescription说明用途。

修正后的Info.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>LSApplicationCategoryType</key>
        <string>public.app-category.utilities</string>
        <key>NSAccessibilityUsageDescription</key>
        <string>本应用需要Accessibility权限来监听全局鼠标点击事件,并根据你的输入文本模拟键盘输入。</string>
        <!-- 仅当使用Apple Events时保留以下项 -->
        <key>NSAppleEventsUsageDescription</key>
        <string>本应用需要Apple Events权限来辅助完成自动化输入操作。</string>
    </dict>
</plist>

4. Privacy Manifest的正确配置

你当前的Privacy Manifest存在API类型字符串错误(Accessibility应为NSPrivacyAccessedAPICategoryAccessibility),需修正并确保理由符合苹果隐私要求:

  • 针对Accessibility API:使用NSPrivacyAccessedAPICategoryAccessibility作为类型,理由需具体说明使用场景(如监听鼠标点击、模拟键盘输入)。
  • 针对活跃键盘检测:使用NSPrivacyAccessedAPICategoryActiveKeyboards,理由需明确说明用途(如适配当前输入法以确保输入准确性)。

修正后的Privacy Manifest示例:

<?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>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryAccessibility</string>
            <key>NSPrivacyAccessedAPITypeReason</key>
            <string>监听全局鼠标点击事件,并根据用户提供的文本模拟键盘输入,实现自动化操作。</string>
        </dict>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryActiveKeyboards</string>
            <key>NSPrivacyAccessedAPITypeReason</key>
            <string>检测当前活跃输入法,确保模拟键盘输入的字符与用户预期一致。</string>
        </dict>
    </array>
</dict>
</plist>

内容的提问来源于stack exchange,提问作者Dattatray Bhosale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:04:54