iOS 服务器端推送证书是实现iOS远程推送功能的必要条件之一,开发者需要生成证书并将证书集成到应用程序中,才能够向用户发送推送通知。下面是iOS服务器端推送证书生成的完整攻略。
步骤一:申请推送证书
- 登录苹果开发者中心,选择“证书、标识符和配置文件”;
- 选择“证书”,在页面右侧找到“+”按钮,进入证书申请页面;
- 选择“Apple Push Notification service SSL (Sandbox & Production)”证书类型,点击“继续”;
- 进入证书申请页面,输入所需信息,并上传CSR文件,点击“继续”;
- 点击“下载”按钮,下载生成的推送证书,以.p12格式保存。
步骤二:生成.pem格式证书
将上一步下载的推送证书转换为.pem格式证书,为此我们要借助OpenSSL工具:
- 下载并安装OpenSSL工具;
- 打开终端窗口,输入以下命令(注意:‘cert.p12’和‘key.pem’分别为步骤一中下载的证书文件名和生成的.pem文件名,输入命令时需要输入对应的文件路径):
$ openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
$ openssl pkcs12 -nocerts -out key.pem -in cert.p12
$ openssl rsa -in key.pem -out key-noenc.pem
$ cat cert.pem key-noenc.pem > ck.pem
步骤三:测试推送证书
- 创建一个新的Xcode项目,选择“Single View App”;
- 在应用程序中添加推送功能;
- 打开AppDelegate.m文件,在didFinishLaunchingWithOptions方法中添加如下代码:
#ifdef DEBUG
NSString *apnsCertName = @"cert_sandbox.pem"; // 开发环境证书名称
#else
NSString *apnsCertName = @"cert_production.pem"; // 生产环境证书名称
#endif
NSString *path = [[NSBundle mainBundle]pathForResource:apnsCertName ofType:nil];
NSData *pkcs12 = [NSData dataWithContentsOfFile:path];
NSError *error = nil;
PKCS12 *p12 = [[PKCS12 alloc]initWithData:pkcs12 error:&error];
if (error) {
NSLog(@"%s %@",__FUNCTION__,error);
}
NSDictionary *options = @{APNS_OPTION_PKCS12: p12/*如果证书是pem格式,使用APNS_OPTION_PRIVATEKEY和APNS_OPTION_CERTIFICATE选项*/};
self.apns = [[APNS alloc]initWithHost:@"gateway.push.apple.com" options:options];
self.apns.delegate = self;
[self.apns connect];
- 替换代码中apnsCertName的值为上一步中生成的.p12证书文件名;
- 在Xcode中运行项目,测试推送功能是否正常。
以上是iOS服务器端推送证书生成的完整攻略,开发者可根据实际情况进行适当调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ios 服务器端推送证书生成的方法 - Python技术站