ios CallDirectory应用程序扩展在未启动请求的情况下内存不足

sirbozc5  于 2023-06-25  发布在  iOS
关注(0)|答案(1)|浏览(138)

我遇到了一个问题,当我在呼叫阻止和识别设置屏幕中打开应用程序时,我的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:

我对汇编不是很熟悉,但看起来这与从缓存中加载某些东西有关。以前有人遇到过吗?

smtd7mpg

smtd7mpg1#

我无法找到问题的根本原因,但似乎我使用错误的步骤调试扩展。我直接从Xcode运行扩展方案来重现崩溃,将可执行文件设置为容器应用程序,并选择Wait for the executable to be launched。当我将方案中的Executable设置为None,并使用Debug > Attach To Process运行扩展并选择相应的进程时,扩展运行,我的断点命中。

相关问题