APNs证书创建和上传到环信后台
在iOS中,当app进程不存在的情况下,如果需要向设备发送通知,可以苹果提供的APNs
下面大概讲一下如果创建APNs证书和上传到环信。(首先需要有一个付费的苹果开发账号,否则无法创建相关证书)
文章最后有常见问题
1、前期准备
创建根证书很重要,要确保创建根证书的电脑和最好导出P12的电脑是一台,否者可能无法创建成功。
打开电脑的“钥匙串访问”并按照以下操作
邮箱需要符合邮箱格式,名称随意,之后保存到本地。
2、创建支持推送的APP
3、创建推送证书
此处以开发推送证书为例
再用同样的方式创建生产证书,注意命名要有区别。
此时,我们应该有三个文件:
4、制作环信用的P12推送证书
同样以开发证书为例,双击导入aps_development.cer,
以同样的方式再生成生产用推送证书。此时应该一共有5个文件。
5、上传到环信
如果需要填写bundle id,一定要确保填写正确。
注意:此处也需要选择正确,是开发模式还是生产模式。
密码就是到导出证书时候的密码。
注意事项:
app工程里要打开推送开关
==============================
常见问题:
为什么我按照配置后,app后台了还是收不到推送!
环信的长连接存在的情况下,在服务器就属于在线状态,环信不会通过苹果的APNs 给你发推送,而是直接通过环信的长连接,只有app后台被系统挂起或者是进程被杀死了,才会走APNs,先出怎么处理:
在appdelegate文件里,也实现消息的监听,这样有消息了,也能收到回调。
收到回调后,先判断当前app的状态是在前台还是后台,如果是前台就忽视这条消息,如果在后台,就自己从代码里实现一个本地通知,把需要展示的消息内容得到后,自己发localNotifications. 本地通知的实现方式很简单,网上百度就行。
下面我说下这种方式的好处与坏处。
好处:在正常使用场景中,app之间切换很正常,这样的好处就是不需要频繁的断开重连,速度会很快,同时也会比较省电,而且用户体验会更好。
坏处:其他app里,app的icon上的角标和app内部的角标数量是一致的,但是像自己弹出的处理方式,会可能导致角标不一致,因为apns的角标是服务器发过来的,而localNotification的角标是由app自己设置的。
顺便说一句,目前微信的实现方式也是后台的时候长连接保持,app角标也存在不一致的情况。
APP之前没有用推送,现在需要用了,我按照上面设置后还是不行。
需要删除本地的描述文件,重新去开发者中心下载,描述文件就是Provisioning Profile
APP上线之前,如何测试生产的推送是否好用?
这个情况苹果已经替我们想好了,在打包的时候,有一个选项是ad-hoc。这个选项就是打一个生产用的包,并且可以导出保存到本地,之后用itunes安装就可以了。这个地方一定要注意,这个使用使用的证书需要是生产的证书了哦~
下面大概讲一下如果创建APNs证书和上传到环信。(首先需要有一个付费的苹果开发账号,否则无法创建相关证书)
文章最后有常见问题
1、前期准备
创建根证书很重要,要确保创建根证书的电脑和最好导出P12的电脑是一台,否者可能无法创建成功。
打开电脑的“钥匙串访问”并按照以下操作
邮箱需要符合邮箱格式,名称随意,之后保存到本地。
2、创建支持推送的APP
3、创建推送证书
此处以开发推送证书为例
再用同样的方式创建生产证书,注意命名要有区别。
此时,我们应该有三个文件:
4、制作环信用的P12推送证书
同样以开发证书为例,双击导入aps_development.cer,
以同样的方式再生成生产用推送证书。此时应该一共有5个文件。
5、上传到环信
如果需要填写bundle id,一定要确保填写正确。
注意:此处也需要选择正确,是开发模式还是生产模式。
密码就是到导出证书时候的密码。
注意事项:
app工程里要打开推送开关
==============================
常见问题:
为什么我按照配置后,app后台了还是收不到推送!
环信的长连接存在的情况下,在服务器就属于在线状态,环信不会通过苹果的APNs 给你发推送,而是直接通过环信的长连接,只有app后台被系统挂起或者是进程被杀死了,才会走APNs,先出怎么处理:
在appdelegate文件里,也实现消息的监听,这样有消息了,也能收到回调。
收到回调后,先判断当前app的状态是在前台还是后台,如果是前台就忽视这条消息,如果在后台,就自己从代码里实现一个本地通知,把需要展示的消息内容得到后,自己发localNotifications. 本地通知的实现方式很简单,网上百度就行。
下面我说下这种方式的好处与坏处。
好处:在正常使用场景中,app之间切换很正常,这样的好处就是不需要频繁的断开重连,速度会很快,同时也会比较省电,而且用户体验会更好。
坏处:其他app里,app的icon上的角标和app内部的角标数量是一致的,但是像自己弹出的处理方式,会可能导致角标不一致,因为apns的角标是服务器发过来的,而localNotification的角标是由app自己设置的。
顺便说一句,目前微信的实现方式也是后台的时候长连接保持,app角标也存在不一致的情况。
APP之前没有用推送,现在需要用了,我按照上面设置后还是不行。
需要删除本地的描述文件,重新去开发者中心下载,描述文件就是Provisioning Profile
APP上线之前,如何测试生产的推送是否好用?
这个情况苹果已经替我们想好了,在打包的时候,有一个选项是ad-hoc。这个选项就是打一个生产用的包,并且可以导出保存到本地,之后用itunes安装就可以了。这个地方一定要注意,这个使用使用的证书需要是生产的证书了哦~