我遇到了一个问题,当我在呼叫阻止和识别设置屏幕中打开应用程序时,我的CallDirectory
应用程序扩展立即耗尽内存。我在CallDirectoryHandler.beginRequest(with context:)
和类的初始化器中设置了断点,没有一个被命中。调用堆栈只包含一个带有两个帧的线程,其中没有一个包含我的源代码。我还尝试从我的扩展目标中删除几乎所有的代码,只有一个空的CallDirectoryHandler
实现,但没有解决这个问题。
import Foundation
import CallKit
class CallDirectoryHandler: CXCallDirectoryProvider {
override func beginRequest(with context: CXCallDirectoryExtensionContext) {
context.delegate = self
context.completeRequest()
}
}
extension CallDirectoryHandler: CXCallDirectoryExtensionContextDelegate {
func requestFailed(for extensionContext: CXCallDirectoryExtensionContext, withError error: Error) {
}
}
我还尝试从CallDirectory
扩展目标中删除所有链接的框架和库,但没有解决这个问题。
下面是stacktrace:
我对汇编不是很熟悉,但看起来这与从缓存中加载某些东西有关。以前有人遇到过吗?
1条答案
按热度按时间smtd7mpg1#
我无法找到问题的根本原因,但似乎我使用错误的步骤调试扩展。我直接从Xcode运行扩展方案来重现崩溃,将可执行文件设置为容器应用程序,并选择
Wait for the executable to be launched
。当我将方案中的Executable
设置为None
,并使用Debug > Attach To Process
运行扩展并选择相应的进程时,扩展运行,我的断点命中。