ios APNS/VOIP 推送测试方法

本篇文章的功能是在你完成APNS/VOIP的集成后,如果用你公司的服务端推送的消息收不到,不能确定是ios还是服务端的bug。则可以利用下述方法先把ios端调通。

苹果官网提供了利用终端发送通知的方法

CERTIFICATE_FILE_NAME=你的APNS/VOIP证书路径

CERTIFICATE_KEY_FILE_NAME=APNS/VOIP证书双击后,钥匙串内右键导出当前证书的p12文件,转换成pem格式(终端复制openssl pkcs12 -in YOUR_CERT.p12 -out VOIP.pem -nodes -clcerts)

TOPIC=你的bundleid+.voip  例:com.self.demo.voip

DEVICE_TOKEN=通知的token

APNS_HOST_NAME=api.push.apple.com(正式) api.sandbox.push.apple.com(沙盒)

使用以下命令测试你是否可以使用你的证书连接到 APN:

% openssl s_client -connect "${APNS_HOST_NAME}":443 -cert "${CERTIFICATE_FILE_NAME}" -certform DER -key "${CERTIFICATE_KEY_FILE_NAME}" -keyform PEM

然后使用以下命令发送推送通知:

% curl -v --header "apns-topic: ${TOPIC}" --header "apns-push-type: alert" --cert "${CERTIFICATE_FILE_NAME}" --cert-type DER --key "${CERTIFICATE_KEY_FILE_NAME}" --key-type PEM --data '{"aps":{"alert":"test"}}' --http2  https://${APNS_HOST_NAME}/3/device/${DEVICE_TOKEN}

结果是 HTTP 状态 200(请求成功)。带有文本“test”的通知出现在目标设备上。

如果有错误提示  %: no such job,把‘%’去掉

https://developer.apple.com/documentation/usernotifications/sending_push_notifications_using_command-line_tools?language=objc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容