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

macOS基础App Intent在快捷指令中触发内部错误,求排查

macOS App Intent扩展在快捷指令中运行时报“内部错误”

我在macOS应用中开发了一个基础的App Intent扩展,仅用于接收两个参数,但在快捷指令(Shortcuts)中运行时始终报错:操作“Compare”无法运行,因为发生了内部错误。

相关代码如下:

struct CompareIntent: AppIntent {
    static let title = LocalizedStringResource("intent.compare.title")
    static let description = IntentDescription("intent.compare.description")
    static let openAppWhenRun = true
    
    @Parameter(title: "intent.compare.parameter.original")
    var original: String
    @Parameter(title: "intent.compare.parameter.modified")
    var modified: String
    
    func perform() async throws -> some IntentResult {
        return .result()
    }
}

可能的问题及解决方法

  • 本地化字符串未配置:代码中使用了LocalizedStringResource和带本地化键的IntentDescription,如果项目中没有对应的本地化文件(如Localizable.strings)或未在文件中添加对应键值对,系统无法解析这些字符串会触发内部错误。
    解决:检查项目的本地化文件,确保intent.compare.title、intent.compare.description、intent.compare.parameter.original、intent.compare.parameter.modified这些键都有对应的字符串值;或者暂时替换为硬编码字符串测试,比如static let title = LocalizedStringResource("Compare")。

  • App Intent注册不完整:需要确保App的Info.plist中正确配置了App Intent相关项,或通过@main入口的App结构体注册该Intent。另外openAppWhenRun = true时,要保证主App启动过程无崩溃,否则会导致Intent执行失败。
    解决:在App的主结构体中添加注册代码:

    @main
    struct YourApp: App {
        var body: some Scene {
            WindowGroup {
                ContentView()
            }
        }
        
        init() {
            IntentConfiguration(for: CompareIntent.self) { intent in
                // 可选配置逻辑
            } handling: { intent in
                return .result()
            }
        }
    }
    
  • 参数未设置默认值:虽然String类型参数理论上支持空值,但部分场景下快捷指令可能需要明确默认值才能正常传递参数。
    解决:给参数添加默认值:

    @Parameter(title: "intent.compare.parameter.original")
    var original: String = ""
    
    @Parameter(title: "intent.compare.parameter.modified")
    var modified: String = ""
    
  • 缓存或环境问题:Xcode的Derived Data缓存、快捷指令App的缓存都可能导致异常。
    解决:清理Xcode的Derived Data(Xcode > Settings > Locations > Derived Data),重启Xcode和快捷指令App,重新安装测试App。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:20:09