未调用 SiriKit 扩展

Bri*_*n M 5 ios siri swift sirikit

我正在使用测试应用程序和扩展程序来尝试 SiriKit 驱魔。我的分机根本没有被调用,我不知道为什么。我在另一个应用程序中有一个有效的 SiriKit 扩展,它莫名其妙地停止响应 - 因此这个测试应用程序。

这是我在测试应用程序中设置 SiriKit 所做的工作:

1) 为应用目标添加了 Siri 权限: 在此处输入图片说明

2) 在应用程序的 info.plist 中添加了 Siri 使用说明: 在此处输入图片说明

3)添加了一个新的 Intents 扩展测试目标,并将我想要的 Intent 添加到扩展 info.plist 中: 在此处输入图片说明

4) 连接 IntentHandler 类:

class IntentHandler: INExtension {
override func handler(for intent: INIntent) -> Any {
    print("IntentHandler.handle")
    switch intent {
        case is INAddTasksIntent: return AddIntentHandler()
        default: break
    }
    return self
}
}
Run Code Online (Sandbox Code Playgroud)

5)创建我的处理程序类:

class AddIntentHandler: NSObject, INAddTasksIntentHandling {
func handle(intent: INAddTasksIntent, completion: @escaping (INAddTasksIntentResponse) -> Void) {
    print("AddIntentHandler.handle")
    return completion(INAddTasksIntentResponse(code: .success, userActivity: nil))
}
}
Run Code Online (Sandbox Code Playgroud)

6) 在 AppDelegate 中获得使用 Siri 的权限:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    INPreferences.requestSiriAuthorization({ status in
        if status == .authorized {
            print("Ok - authorized")
        }
    })
    return true
}
Run Code Online (Sandbox Code Playgroud)

7)向应用程序添加了一个 AppIntentVocabulary.plist 文件(我也测试了将其添加到扩展中): 在此处输入图片说明

8)我仔细检查了扩展程序是否嵌入在应用程序目标中: 在此处输入图片说明

9) 并且扩展目标显示正确的受支持意图: 在此处输入图片说明

10) 在目标部署信息区域仔细检查应用和扩展目标是否至少需要 iOS 13.2 版本: 在此处输入图片说明

11) 然后我在运行 iOS 13.3 的 iPhone 上安装该应用程序,在它启动后授予 Siri 权限,并尝试使用 Siri 添加培根。它根本不调用我的扩展程序,并将其添加到内置的提醒应用程序中。

12)我直接从设备上的 XCode 启动扩展,同样的交易 - 我的扩展从未被调用。

我知道注册 Siri 语言可能需要一段时间,但我已经被这个问题困扰了好几天: 在此处输入图片说明

不确定它是否相关,但就像我说的,我让 Siri 在不同的应用程序中工作 - 没有部署到应用程序商店。我花了一些时间研究应用程序中的其他功能,现在又回到了 Siri 集成,却发现它不再响应。我已经回滚到我最后一次已知的 Siri 提交,结果发现它现在在那个(已知良好的)提交中也不起作用。

帮助!我已经为此失去了几天!发生了什么或我错过了什么?!

Bri*_*n M 3

所以毕竟事实证明问题 100% 是我试图用来调用我的应用程序扩展的语言。

谁知道这行不通,“Appname,将培根添加到列表中”,但这会:“将培根添加到 AppName 中的列表”。如果您以应用程序名称开头,“提醒”会捕获它并将其放入提醒列表中。

我将开始一个关于触发意图的新问题。对困惑感到抱歉。