push通知配信には、iOSアプリにおいてもFCMを使っているエンジニアが多いのではないかと思います。
しかし、「情シスが...」、「取引先のルールで...」など、証明書をクラウド上に置くことがむずかしかったり、簡単に外部ライブラリを導入できないケースもありますよね?
また、たくさんのユーザの中から、かなり絞り込んだ条件でpush通知を送りたいなど、「自社管理のサーバから配信できるようにしておけばよかった...」というケースは、決して少なくないでしょう。
レガシーバイナリプロトコルを使用した配信のサポートが終わったいま、改めてAPNs配信の仕組みを自力で実装できるよう知識を整理しましょう。
なお今回は、JSON Web Tokenによる認証で配信することを前提として解説していきます。
また、サイレントpush, Voip pushについても触れていきたいと思います。