xcode を 10 から 11 に挙げて、デバッグを開始したところ pushRegistry(_:didUpdate:for:) が呼ばれないという現象が発生しました。
xcode 10 に戻すと、正常に VoIP Push が利用できます。
Mac A と iPhone A では問題ないのですが、Mac B と iPhone B, C, D では上記の問題が発生してしまう。
開発環境である Mac 側の問題なのか、iPhone 側の問題なのか理由はわかりません。
対策
似たような問題(VoIP Push がバックグラウンド時に届かない)がありましたので、同じ対応をしてみましたがダメでした。
結局は以下の対応で解決しました。
1. アプリを一旦削除します。
2. iCloud にバックアップします。
3. iPhone をリセットします。
設定>一般>リセット>すべてのコンテンツと設定を消去
4. iCloud から回復
この後、xcode 11 でビルドしたところ、pushRegistry(_:didUpdate:for:) が呼ばれトークンが取得できるようになりました。
iCloud のバックアップ/復元は必須かどうかわかりませんが、iPhone の初期化が効いていると思われます。
iPhone 側に何か情報が変な形で残っていたのか、原因はわかりません。。。
心配なのは、正式リリースした後、同じ現象が発生しないかという点です。
利用者に「リセットしてね!」なんて言えないですからねぇ。。。