CallDirectory 应用扩展在未开始请求的情况下内存不足

CallDirectory app extension runs out of memory without beginning request

提问人:Chandler De Angelis 提问时间:6/21/2023 最后编辑:Chandler De Angelis 更新时间:6/21/2023 访问量:28

问:

我遇到了一个问题,当我在呼叫阻止和识别设置屏幕中打开我的应用程序时,我的应用程序扩展会立即耗尽内存。我在类的初始值设定项中设置了断点,但没有命中。调用堆栈只包含一个线程和两个帧,其中没有一个包含我的源代码。我还尝试从我的扩展目标中删除几乎所有代码,以便只有一个没有解决问题的空实现。CallDirectoryCallDirectoryHandler.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

下面是堆栈跟踪:enter image description here

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

ios cocoa-touch ios-app-extension 调用目录扩展

评论


答:

0赞 Chandler De Angelis 6/21/2023 #1

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