我们能在iOS模拟器中测试SIRIKit扩展吗?

15

我正在尝试使用SiriKit开发应用程序扩展,但是当我在模拟器iPhone 7 Plus上运行它时,会出现以下错误:

SpringBoard无法处理该请求。

请问是否iOS模拟器支持SiriKit扩展!


已添加支持,请参见https://dev59.com/UVkR5IYBdhLWcg3w3A0M#43364544。 - Mazyod
是的,它可用。您可以在下面检查更新后的答案和截图。 - Ravindra Shekhawat
6个回答

19

编辑

Xcode 8.3 及以上版本支持在模拟器中使用Siri。步骤如下:

1) 在模拟器设置中启用Siri。

2) 从硬件选项中选择Siri。

以下是参考图片:

步骤1 -

图片描述

步骤2 -

图片描述

步骤3 -

图片描述

步骤4 -

图片描述

过时的回答

不,你不能在模拟器中这样做。

请参考:

为了在设备上运行和调试您的Intents扩展,请选择适用于您的Intents扩展的构建方案。当您将Intents扩展添加到项目中时,Xcode会自动创建一个用于运行该扩展的构建方案。配置该方案以在已连接的设备上运行。 您不能在模拟器中调试您的Intents扩展。 选择Product > Run以在设备上启动您的扩展。当Xcode提示时,选择Siri(或Maps)作为要运行的应用程序。Xcode

构建您的应用程序和扩展,安装它们在设备上,并启动您选择的应用程序。

参考资料-在这里


选择正确的音频输入源非常重要。要进行检查,请转到硬件 -> 音频输入。 - Jonas Deichelmann

8

Xcode 9中,你可以通过UI测试来测试Siri任务。在这个 WWDC session的最后他们提到了这个功能。 基本上它看起来像这样:

    let siri = XCUIDevice.shared.siriService
    siri.activate(voiceRecognitionText: "How many points are on my credit card?")
    let predicate = NSPredicate {(_, _) -> Bool in
        sleep(5)
        return true
    }

    let siriResponse = expectation(for: predicate, evaluatedWith: siri, handler: nil)
    self.wait(for: [siriResponse], timeout: 10)

6
"Yes,更新您的XCode版本:8.3.1及以上版本支持模拟器中的SIRI。" 步骤1:

enter image description here

步骤二 在模拟器设置中启用SIRI

步骤三 硬件--->SIRI

enter image description here


必须下载 XCode 8.3.2 的预览版,请参见 https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 - aginsburg

3

Apple文档中提到:

你不能在模拟器中调试你的Intents扩展。

更新:这在Xcode 8.3中已经改变。


将URL添加到文档:https://developer.apple.com/library/content/documentation/Intents/Conceptual/SiriIntegrationGuide/CreatingtheIntentsExtension.html - tush4r
1
哦,对不起,我没注意到它在那里。 - tush4r

2

现在您可以在Xcode 8.3.1中使用

[之前的回答]

根据Apple文档,不行。


0

从Xcode 8.3开始,您可以在模拟器中启用Siri后,使用“硬件”>“Siri”来调用Siri。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接