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

macOS应用添加至无障碍权限列表导致启动崩溃求助

macOS无障碍权限配置导致应用启动崩溃的解决办法

错误原因分析

启动失败错误码NSPOSIXErrorDomain Code:153本质是权限配置与签名不匹配,导致launchd拒绝启动应用。无障碍权限属于敏感权限,必须通过正确的签名和权限声明流程配置,无法直接通过entitlements绕过用户授权。

解决步骤

  • 检查Entitlements配置
    确保FileBoDebug.entitlements和FileBo.entitlements中的键值完全正确,无拼写错误:

    <key>com.apple.security.accessibility</key>
    <true/>
    
  • 确认签名身份
    在Xcode的Signing & Capabilities面板中:

    • Debug版本选择Apple Development签名身份
    • Release版本选择Developer ID Application签名身份
      禁止使用“Sign to Run Locally”这类临时签名,敏感权限需要合法的开发者签名才能生效。
  • 清理项目缓存

    1. 删除Xcode的Derived Data:Xcode > Settings > Locations > Derived Data,点击路径旁箭头打开文件夹后删除所有内容
    2. 重启Xcode,执行Product > Clean Build Folder,再重新编译运行
  • 重置系统权限数据库
    打开终端执行命令,重置无障碍权限列表:

    tccutil reset Accessibility
    

    之后重新运行应用,系统会正常弹出权限请求对话框,而非直接崩溃。

  • 正确使用AxIsProcessTrustedWithOptions
    将权限检查代码放在applicationDidFinishLaunching之后执行,确保应用完成启动初始化:

    #import <ApplicationServices/ApplicationServices.h>
    
    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
        NSDictionary *accessibilityOptions = @{(id)kAXTrustedCheckOptionPrompt: @YES};
        BOOL isTrusted = AXIsProcessTrustedWithOptions((CFDictionaryRef)accessibilityOptions);
        if (!isTrusted) {
            // 处理未授权逻辑,比如引导用户手动添加权限
        }
    }
    
  • 验证系统完整性保护(SIP)状态
    执行csrutil status检查SIP是否开启,若处于关闭状态,重启Mac到恢复模式并执行csrutil enable开启SIP——敏感权限在SIP关闭环境下可能出现配置异常。

关键提示

macOS的无障碍权限无法自动添加到系统列表,entitlements仅用于声明应用需要该权限,最终仍需用户授权。之前的崩溃是因为权限配置与签名不兼容导致的启动拦截,而非“自动添加权限”的逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:56:24