如何在iOS中调试Spotlight扩展

时间:2016-08-11 23:24:31

标签: ios swift ios-app-extension corespotlight

我在iOS中创建了Spotlight扩展程序,并希望对其进行调试。但是,由于Spotlight索引由iOS控制,我不知道哪个应用程序会触发索引运行。我试过Safari但无济于事。

2 个答案:

答案 0 :(得分:1)

您可以在Xcode的左上角选择它。 enter image description here

答案 1 :(得分:1)

在Xcode窗口左上方的方案选择器中选择Spotlight扩展名。

Xcode scheme selector

当您单击运行时,Xcode会询问您要运行哪个应用程序。选择扩展程序的父应用程序。这将正常运行您的应用程序,但现在您将附加到扩展程序中进行调试。

下一步是触发Spotlight重新索引。在设备的设置页面上执行此操作(必须启用该功能才能通过Xcode进行开发):

  

设置->开发人员-> CoreSpotlight测试

Settings -> Developer CoreSpotlight testing

在这里您可以选择为所有项目重新编制索引使用标识符为所有项目重新编制索引。这两个选项与下面的Core Spotlight IndexRequestHandler: CSIndexExtensionRequestHandler方法相对应:

override func searchableIndex(_ searchableIndex: CSSearchableIndex, reindexAllSearchableItemsWithAcknowledgementHandler acknowledgementHandler: @escaping () -> Void) {
    // Reindex all data with the provided index
}

override func searchableIndex(_ searchableIndex: CSSearchableIndex, reindexSearchableItemsWithIdentifiers identifiers: [String], acknowledgementHandler: @escaping () -> Void) {
    // Reindex any items with the given identifiers
}

您现在将能够正常调试这些方法,并且在源代码编辑器中显示运行时错误。