十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
最近弄了下推送,在测试时遇到了些问题,在此整理汇总了些推送测试相关的方案,并添加了一些补充信息。下方链接是相关文章,感谢各位作者的分享。
创新互联专注于江城企业网站建设,响应式网站设计,成都商城网站开发。江城网站建设公司,为江城等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
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;/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地址:
如果报错
SSL端点域名不能被设置 -25300
Keychain中不能找到证书 -25300
说明钥匙串中没有密钥,要新的p12文件并双击
不推荐,所以不例举,网站风险无法判断。
u;/u 证书转换
u;/u 证书转换
u;/u 证书转换
u;/u
u;/u
u;/u 脚本
u;/u
u;/u 脚本
u;/u 模拟器
导语:
由于移动设备内存、CPU、电量的局限性,iOS 不允许 APP 的进程常驻后台(事实上可以申请后台运行一段时间,最长约 10 分钟),这样当用户主动杀掉 APP,或者 APP 进入后台超过约定时长时,就意味着该 APP 进程的结束。这在很大程度上保障了前台 APP 的流畅性,也延长了手机的使用时长,获得了较好的用户体验。但是这也意味着,服务器无法主动和用户交互(如推送实时消息等)。为了解决这个限制,苹果推出了 APNs,允许设备和服务器分别与苹果的推送通知服务器保持长连接状态。
iOS 的通知分为本地通知和远程通知。本地通知是由本地应用触发的,一般是基于时间的一种通知形式,如闹钟、待办事件等的提醒。远程通知是由开发商通过自己的服务器推送的一种通知形式,而 APNs 就是远程通知功能的核心。
关于远程推送,记住以下两点就够了:
这里就很清楚了,其实 APNs 的本质就是 服务器和客户端之间的中介 。当服务器需要给客户端推送消息时,先将消息发送给苹果服务器,再由苹果服务器找到对应设备推送下去。
那为什么还要走中介,不直接发送呢?因为这样做一个设备(即所有 APP )只需要和苹果的服务器建立一条长连接,而不需要每个 APP 都和服务器建立一条长连接。
可能有些人还是不太明白 APNs 的意义,觉得也只是将多个长连接变成了统一的一个长连接而已,有必要那么做吗?
很有必要!
我们来看下 Android 的推送现状就明白了。
Android 事实上也有类似于 APNs 的一套用于推送的服务,简称 GCM,即 Google Cloud Messaging。但由于 GCM 需要谷歌服务器的支持,在国内由于「墙」的原因基本不能使用。这下就热闹了,国内出现了一大堆第三方推送服务商,如华为推送、小米推送、极光推送等。APP 通过集成这些推送服务来实现推送功能,而这些推送服务为了保持自己的长连接不被杀死,采用了各种保活、唤醒手段,这也是 Android 手机使用不流畅的真凶。之前也有看到「 工信部要求国内安卓统一消息推送标准 」的新闻,工信部都这么重视,可见统一推送的意义非凡。
想要了解具体区别,可以参考这篇文章 「 国内 90%以上的 iOS 开发者,对 APNs 的认识都是错的 」。
不言而喻,当然是尽早升级 HTTP/2 协议了。
参考:
(完)
APNs Development iOS :开发环境下的推送证书。APP接入个推、极光实现推送功能时,需要这两个环境下的证书,不过证书要在keychain中生成p12文件才可被个推、极光识别。
Apple Push Services :生产环境下的推送证书。APP接入个推、极光实现推送功能时,需要这两个环境下的证书,不过证书要在keychain中生成p12文件才可被个推、极光识别。
iOS Distribution :生产证书。把app的ipa包上传到AppStoreConnect审核会用到发布证书
iOS Development :开发证书。真机调试、发包测试会用到开发证书
关于ios消息推送机制(APNS)的实现、原理介绍很多,但都零零散散。
1、APNS原理、配置开发者账户以开启APNS服务、获取发送消息的认证证书的实现。
2、首先是应用程序注册消息推送。
3、 IOS跟APNS Server要deviceToken。应用程序接受deviceToken。
4、应用程序将deviceToken发送给PUSH服务端程序。
5、 服务端程序向APNS服务发送消息。
6、APNS服务将消息发送给iPhone应用程序。
消息推送应该找一家专业的软件,极光就挺不错的。极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供移动消息推送服务。
2016年6月,国内一站式开发者服务平台极光推送发表公开声明,宣布品牌正式全面升级为大数据综合服务商“极光”。