如何无需用户录短语自动添加Siri Shortcuts及解决ITMS-90626错误
解决Siri快捷指令自动添加与ITMS-90626审核错误问题
一、实现无需用户录制的快捷指令添加(解决setShortcutSuggestions无效问题)
INVoiceShortcutCenter.shared.setShortcutSuggestions仅用于向Siri提供快捷指令建议,不会直接将指令添加到用户的Siri库中。要实现类似Zomato的一键添加效果,需按以下步骤操作:
- 创建自定义意图实例
先确保已定义对应的Intent类(比如StartBoulderClimbIntent),初始化并配置参数:
- 创建自定义意图实例
let climbIntent = StartBoulderClimbIntent() climbIntent.ascent = true // 设置意图参数 let climbShortcut = INShortcut(intent: climbIntent)
- 触发用户授权添加流程
通过按钮等交互触发addVoiceShortcut方法,系统会弹出Siri授权界面,用户确认后即可完成添加(可预设默认短语,用户可修改):
- 触发用户授权添加流程
INVoiceShortcutCenter.shared.addVoiceShortcut(climbShortcut) { voiceShortcut, error in if let error = error { print("添加失败:\(error.localizedDescription)") } else { print("快捷指令已添加") } }
注意:苹果不允许应用静默添加快捷指令,必须由用户主动触发并确认授权,这是隐私规则要求,Zomato等应用也是通过引导用户点击按钮完成添加。
- 排查
setShortcutSuggestions无效的原因
如果只是想提供建议但没生效,检查以下几点:
- 确认Info.plist中已添加
NSUserActivityTypes和Siri相关权限配置 - 确保
INShortcut关联的意图已在.intentdefinition文件中正确配置,且启用了Siri支持 - 在应用启动完成后(比如
applicationDidFinishLaunching)或用户完成相关操作后调用该方法,确保时机正确
- 排查
二、解决ITMS-90626审核错误
该错误是因为你的Siri快捷指令示例短语包含了"Siri"关键词,苹果审核规则明确要求示例短语仅需填写用户触发时说的核心内容(用户实际调用时会自己加上"Siri"前缀)。
解决方法:
- 打开你的
.intentdefinition文件,找到对应的意图示例短语 - 将
"Siri, start a boulder climb with ascent"修改为"Start a boulder climb with ascent",同理修改另一条短语为"Start a boulder workout with ascent" - 重新打包提交审核即可
内容的提问来源于stack exchange,提问作者Chandaboy
相关产品推荐
相关产品推荐

