1、证书
- 开发时. 如果你的程序是在Debug模式下运行,并且使用的是开发阶段的provisioning profile(Code Signing Identity属性的值是”iPhone Developer”),那你的服务器必须使用开发阶段的证书。开发证书的有效期是3个月。
- 生产时. 程序如果已经在苹果商店上发布(Code Signing Identity属性的值是”iPhone Distribution”),那服务器必须使用生产阶段的证书。如果这两个被弄混了,推送的提示信息就无法到达你的程序。生产时用的证书有效期是1年。
2、AppId
每一个应用在app store 中都有一个AppId。Development和Production两个版本可以共用一个App ID
(不推荐。共用时每次调试前都要删 除设备上的app,重新打包生成。而且公用appid会经常抓狂,早上行,下午就不行了。所以不推荐),
3、deviceToken
Development和Production两个版本对应的apns device token是不同的,前者是develop的mobileprovision
下获取的。后者是production的mobileprovision获取的。
4、批量发送
目前由于APNS(Apple Push Notification Service)机制原因,目前easy apns的消息发送机制为:对每一
条发送的消息,为所有需要推送的设备都在数据库中apns_messages创建一条消息,然后通过轮训数据库表来一条一条向
苹果消息推送服务器发送消息
在需要推送的设备较多的情况下,由于存在大量的网络链接,导致存在较长时间的延迟。
解决方案:(1)、做批量消息推送时候,保持与苹果消息推送服务器的长链接
(2)、使用批量发送机制
5、客户端和服务器端
服务器端,如果是php的,那必须使用.pem的证书,如果是java的,那必须使用.p12的证书。
(很可能还需要双击证书进行安装!)服务器端发出的json包是有大小限制的,最大256字节,包括自定义字典集