如何在 iOS 中调试 Spotlight 扩展

Fen*_*Yun 5 ios swift ios-app-extension corespotlight

我在 iOS 中创建了一个 Spotlight 扩展并想要对其进行调试。但是,由于 Spotlight 索引由 iOS 控制,我不知道哪个应用程序会触发索引运行。我尝试过 Safari 但没有成功。

Chr*_*ris 5

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

Xcode 方案选择器

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

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

设置 -> 开发者 -> CoreSpotlight 测试

设置->开发者 CoreSpotlight 测试

您可以在此处选择“重新索引所有项目”“使用标识符重新索引所有项目”。这两个选项对应于以下 Core SpotlightIndexRequestHandler: 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
}
Run Code Online (Sandbox Code Playgroud)

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


Lum*_*lxk 1

您可以在 Xcode 的左上角选择它。 在此输入图像描述