SwiftUI/Xcode 12.5下Mac应用获取辅助功能权限问题及开发阶段权限授予方法咨询
解决开发阶段Mac应用辅助功能权限无法授予的问题
我之前也碰到过这个问题,开发阶段的Mac应用经常会出现辅助功能权限识别不到的情况,给你几个实用的解决方法:
1. 手动添加编译后的应用到权限列表
开发中的.app文件路径是临时的,系统偏好设置不会自动识别到,你需要手动找到它并添加:
- 在Xcode的项目导航栏里,找到
Products文件夹,右键点击你的应用(后缀是.app),选择Show in Finder - 打开系统偏好设置 > 安全与隐私 > 隐私 > 辅助功能
- 点击窗口左下角的锁图标,输入密码解锁
- 把Finder里的
.app文件直接拖到辅助功能的权限列表里,然后勾选它
⚠️ 注意:一定要拖你自己的应用,不是Xcode——Xcode和你的应用是完全独立的进程,给Xcode授权对你的应用没用。
2. 重置辅助功能权限缓存
如果拖入应用后依然无效,可能是系统权限缓存出问题了,用终端命令重置:
- 打开终端,运行以下命令:
tccutil reset Accessibility - 重置后重启你的应用,再次调用
AXIsProcessTrustedWithOptions,应该会触发系统的权限请求弹窗了。
3. 检查代码和项目配置
- 确保你的项目已经导入了
ApplicationServices框架:在Xcode的项目设置里,找到Build Phases>Link Binary With Libraries,添加ApplicationServices.framework - 如果你的应用开启了沙盒,还需要在
Signing & Capabilities里添加Accessibility权限(搜索"Accessibility"并勾选) - 确认代码写法正确,Swift里的正确写法应该是:
import ApplicationServices let options: NSDictionary = [kAXTrustedCheckOptionPrompt.takeRetainedValue() as NSString: true] let accessibilityEnabled = AXIsProcessTrustedWithOptions(options)
4. 刷新系统偏好设置
有时候系统偏好设置的权限列表没有实时刷新,你可以:
- 关闭系统偏好设置,重新打开后再查看权限列表
- 或者重启你的Mac,让系统重新加载权限配置
内容的提问来源于stack exchange,提问作者pistacchio




