Voip PushKit 初探

2020/10/16 posted in  iOS

按照苹果的知道文档进行配置后,使用Xcode 12 跑程序遇到了如下的错误:

PushKit apps that use VoIP push must link either CallKit or IncomingCallNotifications frameworks.

出现此错误是因为 iOS 13 的SDK对PushKit使用进行了更新,要求一定要使用CallKit处理PushKit的通知:

https://developer.apple.com/documentation/pushkit/pkpushregistrydelegate/2875784-pushregistry?language=objc

当与iOS 13 SDK或更高版本链接时,你对该方法的实现必须通过调用你的应用程序的CXProvider对象的reportNewIncomingCallWithUID:update:completion:方法,向CallKit框架报告PKPushTypeVoIP类型的通知。当你调用该方法时,除非发生错误,否则系统会向用户显示标准的来电界面。例如,如果用户启用了 "请勿打扰",系统就会报告一个错误。你可以在通知CallKit的同时建立与VoIP服务器的连接。

使用 CallKit 处理 PushKit 的通知:

https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit?language=objc