SiriKit的IntentsDefinition文件定义的快捷指令未在macOS快捷指令App显示
解决步骤
1. 手动添加Siri权限配置
Xcode 13.x的macOS项目默认不展示可视化的Siri能力添加选项,无需额外查找,直接手动修改entitlements文件即可:
- 若项目暂无
.entitlements文件,前往target的「Signing & Capabilities」页面,点击右上角+号任意添加一个能力(例如App Sandbox)后再删除,Xcode会自动生成对应entitlements文件 - 打开
.entitlements文件,新增键com.apple.security.siri,类型选择Boolean,值设为YES
2. 补充Info.plist配置
在Info.plist中新增权限说明字段:
- 键:
NSSiriUsageDescription - 值:填写向用户申请Siri权限的提示文案,例如「允许访问Siri以通过快捷指令控制本应用」
3. 校验Intent相关配置
- 确认你的
Intents Definition文件的Target Membership勾选了主App target - 确认「General」页「Supported Intents」列表中填写的Intent名称,与Intent Definition文件中定义的Intent Class名称完全一致(大小写敏感)
- 确认Intent配置的Category为macOS支持的通用类别,不要选择仅iOS可用的分类
4. 主动申请Siri权限
在App启动流程中主动调用Siri权限申请接口,触发系统授权弹窗:
Swift 示例
import Intents INPreferences.requestSiriAuthorization { status in // 可在此处判断权限是否授权成功 }
Objective-C 示例
#import <Intents/Intents.h> [INPreferences requestSiriAuthorization:^(INSiriAuthorizationStatus status) { // 可在此处判断权限是否授权成功 }];
5. 验证快捷指令是否生效
- 完成授权后,完全退出「快捷指令」App后重新打开,即可在对应App的分类下看到自定义的快捷动作
- 若仍未显示,可尝试重启一次设备,Monterey RC版本存在少量Shortcuts缓存异常问题
内容的提问来源于stack exchange,提问作者Z S
相关产品推荐
相关产品推荐

