Drowsy Dog's Diary

any note, any thought

2013年9月1日
by kazoo
0 comments

【危険】jpoz/APNSの現バージョンにpush通知大量爆撃のバグ

たとえば iOS アプリのサーバサイドを Rails で実装している場合などに PUSH 通知を使いたいとき、
APNs(Apple Push Notification service) 通信用の ruby 実装として便利な gem、jpoz/APNS なのですが、現行バージョン(1.0.0)にかなり危険なバグがあるようで。

https://github.com/jpoz/APNS/issues/19
https://github.com/jpoz/APNS/pull/22

このコミット以来、

と、ループが二重になっていて、たとえば send_notifications に100件のデバイストークンを渡したら、
100人に 1件ずつ PUSH 通知を送っているつもりが、100 人に 100 件ずつ絨毯爆撃されてしまうという状態。。

8/27 に修正もコミットされているのですが、まだ本線にはマージされておらず、
すでに master は2ヶ月ほどこの状態でいるようです。危ない。

修正内容は単純に

Fork 数からすると Rails 向け APN としてはこちらの方がメジャーなのかも(知らんかった)ですが、ruby で PUSH 通知を組んでいる方は一応ご注意ください。

何が怖いって、PUSH 通知はユーザからフィードバックが無いとどうなっているかわからないところですよね。。
Sandbox で1台や2台のデバイスにテストしたところで気付きにくいし。

外部の gem やプラグインもちゃんと中身を把握して使いましょう、という当然の教訓を再度噛み締めつつ。