【问题标题】:How to debug a Spotlight extension in iOS如何在 iOS 中调试 Spotlight 扩展
【发布时间】:2016-12-18 20:30:51
【问题描述】:

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

【问题讨论】:

    标签: ios swift ios-app-extension corespotlight


    【解决方案1】:

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

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

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

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

    您可以在此处选择重新索引所有项目重新索引所有带有标识符的项目。这两个选项对应于下面的 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
    }
    

    您现在可以正常调试这些方法,运行时错误会显示在源代码编辑器中。

    【讨论】:

    • 我无法让它工作,我尝试在这两个函数中放置一些断点或打印语句,但是当我按下 Settings->Developer 中的按钮时无法调用它。
    • @PhuahYeeKeat 您是否选择了 Xcode 左上角面板中的扩展程序而不是主应用程序?另外,您是否使用添加新目标窗口中的 Spotlight 扩展选项添加了扩展?
    • 我意识到它似乎无法使用模拟器工作,在真实设备上尝试过,它成功了!谢谢!
    • @PhuahYeeKeat 我去看看——我不擅长 Core Data!
    【解决方案2】:

    您可以在 Xcode 的左上角选择它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 2014-07-24
      • 2014-09-27
      • 2017-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多