1. yimajo

    No comment

    yimajo
Changes in body
Source | HTML | Preview
@@ -1,43 +1,43 @@
macOSをHigh Sierraにアップデートしたら、cURLのバージョンが7.54.0になっており、さらにHTTP/2の利用ができるようになっていました。
-iOS10からは[APNs Provider API](https://developer.apple.com/jp/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html)を利用したPUSH通知が送れていたため、つまりはローカルのmacOSから端末へ向けたPUSH通知を出すことが出来ます。
+iOS10からは[APNs Provider API](https://developer.apple.com/jp/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html)を利用したPUSH通知が受け取れていたため、つまりはローカルのmacOSから端末へ向けたPUSH通知を出すことが出来ます。
念のため、curlコマンドからnghttp2込みでビルドされているのを確認するのは-Vです。
```bash
$ curl -V
curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy
```
ちなみにcurlでHTTP/2を使えればよかったので、Dockerを使った記事である[気軽にプッシュ通知のテストがしたい](https://qiita.com/fromkk/items/e1d8d8e302b49a372dd10)を参考にAPNs Provider APIを利用するスクリプトapns.shを用意する例を示すと、下記のようになります。
```
$ apns.sh key.pem デバイストークン
```
これは引数でpemファイルのパス、デバイストークンを指定するようにしています。
```bash:apns.sh
#!/bin/sh
pemfile=$1
token=$2
pushData='{"aps": {"alert": "push dev test"}}'
bundleIdentifier="アプリのBundle ID"
appleUri="https://api.development.push.apple.com/3/device/"
curl -v \
-d "$pushData" \
-H "apns-priority: 10" \
-H "apns-expiration: 0" \
-H "apns-topic: ${bundleIdentifier}" \
--http2 \
--cert ${pemfile} \
${appleUri}${token}
```
iOSアプリを開発するmacOS標準で用意してくれているcurlコマンドさえ叩けばいいという利点は大きいので、ちょっと工夫すればいろんなやり方がありそうですね。