关于苹果APNS推送机制中各生成文件(CSR、证书、Provisioning文件)的关系的梳理,以及各种坑

1.前言

iOS采用APNS做推送,流程附一张图吧,不多说



2.正题

这两天重新搞了几天的推送,有些坑想给大家指出来,少走弯路。

那我想要说的是流程中需要用的各种文件,为诸位做一个梳理,理解不到之处,敬请批评指正!

注:以Development为例,Distribution照搬即可。同样我们实现的网上常见的用php实现的推送服务器。

2.1 所需文件

首先是我们最终需要生成如下图所示的文件夹中的文件:

其中各个文件的关系:


2.2 生成各个文件时中的弯弯

1、生成Certificate Signing Request (CSR):

正常情况下,生成CSR文件如下图所示:


而正确生成CSR之后,会在密钥一项出现对应的密钥,如图


注意:下面这种情况会导致证书有问题!


2、生成PushZYQ.mobileprovision文件

生成PushZYQ.mobileprovision需要选择对应的证书,注意此处需要选择的证书是ios_development.cer对应的证书而不是SSL证书

3、生成PushZYQ.p12文件


4、各种命令

三步生成ck.pem文件

4.1、

openssl x509 -in aps_development.cer -inform der -out PushZYQCert.pem

4.2、

 openssl pkcs12 -nocerts -out PushZYQKey.pem -in PushZYQ.p12

4.3、

cat PushZYQCert.pem PushZYQKey.pem > ck.pem

5、关于接收推送

默认推送提示是在程序退出后才会出现的,所以如果当前程序正在运行,只能通过回调方法来判断,如果你想联调的话。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    // 处理推送消息
    NSLog(@"userinfo:%@",userInfo);
    
    NSLog(@"收到推送消息:%@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]);
}

3.所需文件

3.1、PHP实现的服务端,由于不能插入超链接,所以大家可输入图中URL


3.2、简易Demo

这个Demo中没有图示,大家可以通过控制台来查看,适配iOS8.0+。


4.正常情况下如图所示



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值