设备锁定时,CallKit 未显示传入 UI

CallKit is not showing Incoming UI when Device is Locked

我正在开发一个 voip 应用程序,它使用 Callkit 显示系统 UI 来电。

为了测试来电,我从我的应用程序中触发了它,如下所示

let callHandle = CXHandle(type: .phoneNumber, value: "+9197xxxxxxxx")
let callUpdate = CXCallUpdate()
callUpdate.remoteHandle = callHandle
callUpdate.supportsDTMF = true
callUpdate.supportsHolding = true
callUpdate.supportsGrouping = false
callUpdate.supportsUngrouping = false
callUpdate.hasVideo = false
UIApplication.shared.beginBackgroundTask {
    print("Error")
}
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {
    self.callKitProvider.reportNewIncomingCall(with: UUID(), update: callUpdate) { (error) in
        print(error)
    }
}

当应用程序处于前台时它工作正常,但是当我将设备置于锁定状态时它会抛出错误 "Error Domain=com.apple.CallKit.error.incomingcall Code=3 "(null)""

请帮忙。提前致谢!

DND 是@AntonioM 在评论中建议的问题,关闭它可以正常工作。

你设置info.plist了吗?所需的后台模式 -> 'App provides Voice over IP services' 请求。