iOS APNS远程推送 测试全方案汇总

iOS APNS远程推送 测试全方案汇总,第1张

最近弄了下推送,在测试时遇到了些问题,在此整理汇总了些推送测试相关的方案,并添加了一些补充信息。下方链接是相关文章,感谢各位作者的分享。

debug包和build切换为release直接在手机上跑生成的device token都是开发token。release打包后注册生成的token是生产的。

证书制作者要推送证书的 p12文件。 双击输入密码。在钥匙串中找到如下。

证书有下方密钥,没有的话证书不可用。

将p12上传的三方平台并填写密码即可。测试推送在这些推送平台填写 设备token等信息即可。

给中台p12文件和密码,协商好消息格式、提供对应环境的token,由中台触发即可。

注意证书分为三种。测试(sanbox)、生产、 测试和生产合并。

如果发送成功,核对 token、证书、中台链接苹果服务器息的地址。是否为统一环境。(苹果的推送服务器也是区分测试和生产的,域名不同,下方脚本中可以看到)

在Xcode11.4之后,模拟器也支持推送测试

具体格式根据你们的产品要求,接入极光或者个推的可以在控制台发一条推送打印出具体格式内容查看,将文件保存后缀为apns,待会要用到

a、查看已启动模拟器

会看到类似下面信息,如果没有请先启动模拟器

b、运行项目在模拟器上后执行相应命令simctl push <device>[<bundle identifier>] (<json file>| -)

示例如下

将第一步创建的json文件内容稍加修改,具体就是添加了"Simulator Target Bundle": "com.app.test"你项目的包名

然后直接拖动文件到模拟器上,出现绿色➕后松手,这样也可以进行推送测试

参考苹果官方文档

Sending Push Notifications Using Command-Line Tools

<u>https://links.jianshu.com/go?to=https%3A%2F%2Fdeveloper.apple.com%2Fdocumentation%2Fusernotifications%2Fsending_push_notifications_using_command-line_tools</u>

1、在终端新建 shell 文件,这里命名为 push-remote-notification

2、编辑 shell 脚本,这里需要 der 和 pem 证书,如果已经有了 p12 证书,可以通过 openssl 进行转换

运行 shell 脚本

真实脚本事例:

a、p12转der需要先转为pem格式,再从pem转到der格式

openssl pkcs12 -in disPush.p12 -out disPush.pem -nodes

b、pem转der

openssl x509 -outform der -in certificate.pem -out certificate.der

Smart push

git地址: https://github.com/shaojiankui/SmartPush

如果报错

SSL端点域名不能被设置 -25300

Keychain中不能找到证书 -25300

说明钥匙串中没有密钥,要新的p12文件并双击

不推荐,所以不例举,网站风险无法判断。

<u>https://www.jianshu.com/p/15d58b1ada5b</u> 证书转换

<u>https://blog.csdn.net/u013250412/article/details/78729828</u> 证书转换

<u>https://www.jianshu.com/p/9d7aece4a88d</u> 证书转换

<u>https://developer.apple.com/documentation/usernotifications/sending_push_notifications_using_command-line_tools</u>

<u>https://blog.csdn.net/berryreload/article/details/52205397</u>

<u>https://www.jianshu.com/p/87168eecc395</u> 脚本

<u>https://developer.aliyun.com/article/116088?spm=a2c6h.13813017.content3.2.6bc0590ePir0NF</u>

<u>https://www.jianshu.com/p/87168eecc395</u> 脚本

<u>https://www.jianshu.com/p/e8e4f4984fee</u> 模拟器

1.APNS的推送机制

首先我们看一下苹果官方给出的对ios推送机制的解释。如下图

Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。

上图可以分为三个阶段:

APNS推送通知的详细工作流程

下面这张图是说明APNS推送通知的详细工作流程:

根据图片我们可以概括一下:

1. 什么是远程消息推送?

3. 实现消息推送的步骤

总结下大致流程

1.设备打开某个App后,会生成唯一的 一个token ,并把这个token上传给我们自己的服务器,我们的服务器有了token,就可以向我们的app推送通知了,这个是前提。但是这个通知并不能直接推送给我们的设备,而是要推送给苹果的服务器。

2.我们的服务器会将token和推送的内容,一起推送给苹果的服务器。

3.苹果服务器会根据token定位到设备,将push推送给设备。

4.设备拿到这个push,就会知道是哪个app。然后就可以将这个通知推送到具体的app。

推送的实现方式: 

想要收到推送消息 ,就必须要有后台服务器(下面的1、2)往 苹果的APNs的服务器发请求。 

1、公司自己开发后台服务器程序 

2、 采用第三方的后台服务程序,比如:百度云推送、极光推送、友盟推送


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/367887.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-12
下一篇2023-05-12

发表评论

登录后才能评论

评论列表(0条)

    保存