iOS 13 not getting VoIP Push Notifications in background
If you build the app with Xcode 11 (and iOS 13 SDK) PushKit won't work any longer if you fail to report to CallKit.
On iOS 13.0 and later, if you fail to report a call to CallKit, the system will terminate your app. Repeatedly failing to report calls may cause the system to stop delivering any more VoIP push notifications to your app. If you want to initiate a VoIP call without using CallKit, register for push notifications using the UserNotifications framework instead of PushKit.
https://developer.apple.com/documentation/pushkit/pkpushregistrydelegate/2875784-pushregistry
Answer from @mudassirzulfiqar on Github (Thanks to him). I got voip push notification after uninstall and re-install my app. Now, I will call reportNewIncomingCall
in didReceiveIncomingPushWith
.
I have figured out the issue, as it is stated in the official forums by Apple that not calling completion will result ban your application after 3 to 5 attempts I guess. So I think when the app get banned in 2 to 3 attempts then it stops receiving voip.
Use case: I reinstalled my application and put my application into the background and didReceiveIncomingPushWith gets called. But because i'm not using completion closure on the right time, probably again Im not going to receive voip next time. And this always work fine when app is in foreground.