断点未命中,消息扩展也未在 iOS 中附加

Posted

技术标签:

【中文标题】断点未命中,消息扩展也未在 iOS 中附加【英文标题】:Breakpoint not getting hit, nor the Message extension is getting attached in iOS 【发布时间】:2019-02-18 14:53:12 【问题描述】:

我正在为 ios 编写一个短信过滤器扩展。我创建了一个MessageFilterExtension。扩展代码是

import IdentityLookup

final class MessageFilterExtension: ILMessageFilterExtension 
    var words: [String] = ["deal", "spam", "offer"]
    override init() 
        print("message filter init")
    


extension MessageFilterExtension: ILMessageFilterQueryHandling 

    func handle(_ queryRequest: ILMessageFilterQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterQueryResponse) -> Void) 
    //...


我在容器应用程序确实启动时设置了断点,在 appex handle 和其他方法中。 appex 不调用远程服务。然后我选择 appex 目标,单击运行,在附加列表中选择容器应用程序作为已经提到的可能目标。然后显示“等待附加”。然后我选择容器应用程序并点击运行,它构建并运行,然后点击断点。但是,appex 没有附加或启动。然后我发送一些 SMS 文本,但它没有过滤。 Xcode 或 Console.app 中没有打印语句。我已启用消息过滤器并将容器应用程序设置为过滤短信。

我正在 iPhone 7 Plus 和 iOS 12.1.4 上对此进行测试。在以前的 iOS 版本上测试过,但仍然无法正常工作。

到目前为止我尝试过的方法:

How To Debug iOS AppexMessages App Extension won't hit breakpoints

我没有保存联系人姓名。 (通过某种组合,它曾经工作过,但我现在无法调试)。如何调试消息过滤扩展?

【问题讨论】:

【参考方案1】:

我们可以通过从 Xcode 模式菜单中单独运行扩展来调试扩展。在这种情况下,断点将被命中。使用主应用程序运行时,不会命中扩展断点。一般来说,应用程序扩展编程似乎是这样工作的。

【讨论】:

以上是关于断点未命中,消息扩展也未在 iOS 中附加的主要内容,如果未能解决你的问题,请参考以下文章

调试器未在 .NET 代码中命中断点

未命中 Visual Studio 断点

带有社交元数据的 Firebase 动态链接未在 iMessage 上显示图像(iOS 消息)

调试 ASP.Net 应用程序 - 跳过未命中的行和断点

iOS 今日视图未在设备上运行

具有未在模型中定义的附加属性的 NSManagedObject 子类