Help us understand the problem. What is going on with this article?

VoIP Push (PushKit) は着信通知専用になりました・・・

More than 1 year has passed since last update.

注意:この記事はAppleのドキュメントを参照して書きました。実際に実装していないので間違いがあるかもしれません。

VoIP Push は CallKit とともに!(iOS13)

iOS 13 SDK でビルドしたアプリを iOS 13 上で動かした際、VoIP Push を受けたときに CallKit の reportNewIncomingCall を呼び出さなければならないことになりました。
 
reportNewIncomingCall を呼び出すと、電話の着信画面が表示されます。
つまり、VoIP Push は着信通知にしか使えないということになります!
 
チャットなどをサポートしている VoIP アプリは、VoIP Push を着信通知以外に利用していることもあると思いますが(え、そんなことしてない??)、今後は通常のPushを使う必要があります。
 
また、VoIP Push を使っているが CallKit には未対応という VoIP アプリもあるかと思いますが、今後はNGとなります。
CallKit に対応するか、通常のPush を使うか、対策が必要です。
(中国では CallKit 対応アプリをストアに提出できないと聞いてますがどうするのでしょうね・・・)
 
2020年4月以降に提出するアプリは iOS 13 SDK 対応必須ですので、それまでに対応必須です!

iOS 13 SDK の変化点

詳細は以下を参照ください。

Responding to VoIP Notifications from PushKit

pushRegistry(_:didReceiveIncomingPushWith:for:completion:) で VoIP Push を受信した際、この関数内で reportNewIncomingCall を呼び出さないとアプリの起動が停止されるそうです。

WWDC2019 の資料に以下のようにかかれています。

Must report incoming call with CallKit in didReceiveIncomingPush callback
If not, system may stop launching your app for VoIP pushes

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away