Ubuntu
iOS
APNS
Push通知
docker

気軽にプッシュ通知のテストがしたい【iOS10以降対応】

More than 1 year has passed since last update.

Timers Techblog より転載です

掲題の通り気軽にプッシュ通知のテストがしたかったのでDockerでプッシュサーバーを構築しました。
構築したものは こちら です。

Mac OSに Docker がインストールされている事を前提にしています。

構築する環境は下記の通りです。

  • OS: Ubuntu 16.04
  • ミドルウェア: nghttp2curl

また、iOS端末のデバイストークン、 .pem ファイル、アプリのBundle Identifierはご自身で用意して下さい。

ソースをダウンロード

まずは、ターミナルでソースを落としてきます。

git clone git@github.com:fromkk/apns_docker.git
cd ./apns_docker

イメージを作成

Dockerのイメージを作成します。

docker build -t apns:ubuntu .

暫く時間が掛かるのでその間に share/apns/apns.sh ファイルを編集して下さい。

# iOSデバイストークン
token="YOUR TOKEN HERE"
# .pemのフルパス
pemfile="/apns/key.pem"
# Bundle Identifier
bundleIdentifier="BUNDLE IDENTIFIER HERE"
# Pushで送信するデータをJSON形式で記述
pushData='{"aps": {"alert": "Push Test", "sound": "default", "badge": 3}}'

※追記(2016/09/22)

  • ホスト側で .pem ファイルを share/apns/key.pem に配置
  • apns.shpemfile/apns/key.pem とすることで .pem ファイルを読み込む事が出来ます

@yimajo さん有難うございます。

Dockerの起動

Dockerのイメージの作成が無事完了したら起動してみましょう。

docker run -it -v `pwd`/share/apns:/apns apns:ubuntu /bin/bash

プッシュの送信

下記コマンドで指定したデバイストークンにプッシュを送信します。

sh /apns/apns.sh

無事届きましたでしょうか?
iOS 9まではAPNSの仕組みが凄くややこしくて大変だったんですがiOS 10からHTTP2に対応してプッシュの送信が簡単になりました!
細かい仕様は こちら を参照下さい。
これで通知に関するテストが凄くしやすくなったのでどんどん新しい機能を試していきましょう!

スター下さい!