【iOS】iPhoneのバージョンをiOS13にしたらPush通知が届かなくなってしまった

iOS
LoboStudioHamburg / Pixabay
この記事は約2分で読めます。

iOSのバージョンを13に上げた途端に、Push通知に使われているトークン文字列が変な値になっていて、通知が届かないという事象が発生したのでその対応をメモ。

環境

Mac Mojave 10.14.6
xcode 11(おそらく10以下でも発生する)
iOS 13.4.1
Objective-C

修正

届かなくなってしまった方は次のようなコードがあると思うのでそちらを修正します。

修正前

HogeHugaAppDelegate.m

修正後

HogeHugaAppDelegate.m

(参考)FaceBook Git

動作しなくなった原因

iOSのバージョンアップによって、descriptionの返り値が変更されたことが原因のよう。
https://forums.developer.apple.com/thread/117545

OS descriptionの返り値
iOS12以前 <00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000>
iOS13 {length = 32, bytes = 0x00000000 00000000 00000000 00000000 … 00000000 00000000 }

いや、そんなとこ変えんなや笑
なお、Swiftを使っている場合には最初からこの記述方法になっているとのことなので修正の必要はなさそう。

もしSwiftなのに動かないよって方がいらっしゃったらこちらが参考になるかもです。

最後に -情報のキャッチについて-

今回の修正が必要ですよというの、実はApple Developperのフォーラムではにはだいぶ前からわかっていたらしいです。

なのでちゃんと情報をチェックしていた人はあたふたすることなくiOSのバージョンアップに対応出来たのでしょう。。。

iOSのエンジニアをやっている方は定期的にチェックをするようにしておいたほうが良さそうですね。

iOS13 PKPushCredentials broken | Apple Developer Forums

それではみなさん良い開発ライフを!!

コメント

タイトルとURLをコピーしました