首次执行通话时出现CallKit错误7

时间:2019-05-14 13:54:31

标签: ios swift twilio callkit

我已经完成了通话工具+ twilio IOS应用。问题是(据我所知)是ios12。

当我在具有IOS 11的设备上运行该应用程序时,通话会正常启动。当我在具有IOS 12的设备上运行该应用程序时,当我尝试进行首次呼叫时,出现此错误:

  StartCallAction transaction request failed: The operation couldn’t be 
  completed. (com.apple.CallKit.error.requesttransaction error 7.)

此错误表示这件事:请求的事务包含的操作(如果执行)将超过提供程序的最大呼叫组数。但是我将callGroupMax编号设置为1(我尝试将其设置为2,3,但仍然相同)

我在Google上发现只有一个线程出现此错误,但是没有提供解决方案。求助提示我是什么原因导致此错误,因为我一直坚持下去。

此错误仅在全新安装后进行首次调用时出现。然后,我可以按预期拨打电话。

这是callkitManager类:

class CallKitManager: NSObject {
    class var shared: CallKitManager {
        struct Static {
            static let instance: CallKitManager = CallKitManager()
        }
        return Static.instance
    }

    fileprivate let callKitProvider: CXProvider

    override init() {
        callKitProvider = CXProvider(configuration: type(of: self).providerConfiguration)
        super.init()
        callKitProvider.setDelegate(self, queue: nil)
    }

    static var providerConfiguration: CXProviderConfiguration {
        let localizedName                      = NSLocalizedString("NAME", comment: "Name of application")
        let configuration                      = CXProviderConfiguration(localizedName: localizedName)
        configuration.supportsVideo            = false
        configuration.maximumCallsPerCallGroup = 1
        configuration.ringtoneSound            = "myringtone"
        configuration.supportedHandleTypes     = [.generic]

        if let callKitIcon = UIImage(named: "callKitIcon") {
            configuration.iconTemplateImageData = callKitIcon.pngData()
        }

        return configuration
    }

我希望该调用是第一次连接,但是结果是在performStartCallAction()方法中,我从上面得到了错误。

1 个答案:

答案 0 :(得分:0)

所以两天后我就知道了。问题是我将callKit用作单例,这是错误的。您需要使用AppDelegate“模仿”单身人士。请参阅本教程https://www.raywenderlich.com/701-callkit-tutorial-for-ios,并查看AppDelegate并了解其实现方式。