Knuffを使ってプッシュ通知のテストをする
これまでPusherというツールを使ってプッシュ通知受信のテストをしてたのですが、最近久しぶりに使ってみたらエラーが出てしまいプッシュ通知が送信できなくなっていました。
↓プッシュ通知を送信している様子。
Unable to read: Read connection closed
というエラーが表示されてしまう。
Issueを調べたら同じ問題にあたってる人が結構いたようで、Knuffというツールが使えるという情報を得ました。
Pusherと同じような使い勝手で簡単に使うことができました。
ここではKnuffの使い方をご紹介します。
Knuffのインストール
READMEにダウンロードリンクがありますが、Homebrewでもインストールできました。
$ brew install --cask knuff
プッシュ通知を送信する
まずはデバイストークンを取得します。
デバイストークンについての詳しい解説は割愛しますが、AppDelegateのapplication(_:didRegisterForRemoteNotificationsWithDeviceToken:)
メソッドで取得できるので、てきとうにprint文などを仕込んで取得しましょう。
なお、ここで取得できるデバイストークンはData型なので、以下のメソッドで文字列化しておきます。
let token = deviceToken.map { String(format: "%.2hhx", $0) }.joined()
参考: Swiftでプッシュ通知用のDevice Token(Data型)を16進数文字列へ変換する方法 - Qiita
次にKnuffを起動して、「Choose...」をクリックしてキーチェーンに登録されているプッシュ証明書を選択します。
Token欄にデバイストークンを入力して「Push」をクリックすれば端末にプッシュ通知が送信されます。
Payload欄は自由に変更できます(カーソルが動かなかったりで編集できなそうに見えますが編集できました)。
おわりに
Knuffの使い方についてご紹介しました。
なお、Knuffも2020年5月を最後にコミットがないので、そのうち使えなくなってしまうかもしれません。。