Timers Techblog より転載です
掲題の通り気軽にプッシュ通知のテストがしたかったのでDockerでプッシュサーバーを構築しました。
構築したものは こちら です。
Mac OSに Docker がインストールされている事を前提にしています。
構築する環境は下記の通りです。
また、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.sh の pemfile を /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に対応してプッシュの送信が簡単になりました!
細かい仕様は こちら を参照下さい。
これで通知に関するテストが凄くしやすくなったのでどんどん新しい機能を試していきましょう!