iOS推送证书即将过期的解决办法
1.证书请求文件CSR备好,放到桌面,如何创建CSR请看官方文档。
2.登录apple开发者中心。
apple开发者 > Account >Certificates,IDs & Profiles >Identifiers >找到对应app的Identifier(和xcode工程中的Bundle ldentifier一致)
Identifiers里找到对应app的Identifier(和xcode工程中的Bundle ldentifier一致),然后找到Push Notifications > Edit
这里就可以看到你的app对应的推送证书了,点击Create Certificate创建证书:
Development SSL Certificate测试环境推送证书;
Production SSL Certificate 生产环境证书;
来到创建证书这里,上传已备好的CSR文件,点击Continue即可完成创建(生产和测试过程一样,同一个CSR文件)。
然后回到对应app的Identifier页面,就能看到多出了刚刚创建的推送证书和即将过期推送的证书了,旧的证书可以Revoke或者不管都行。
点击Download将证书下载到本地,双击打开下载的开发环境和生产环境证书,系统会将其导入钥匙串中。
-
在钥匙串中找到刚才导入的证书,分别导出.P12证书文件,交给后台配置。
到此,证书就配置完成了。
其它问题
证书会从钥匙串选择,Token可以从代码里获取到。
/*
* APNs注册成功回调
* deviceToken是NSData类型,需要转换成字符串NSString
*/
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *token = @"";
if (@available(iOS 13.0, *)) {
NSUInteger len = deviceToken.length;
char *chars = (char *)[deviceToken bytes];
NSMutableString *hexString = [[NSMutableString alloc] init];
for (NSUInteger i = 0; i < len; i++) {
[hexString appendString:[NSString stringWithFormat:@"%0.2hhx", chars[i]]];
}
token = hexString;
} else {
token = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];
}
NSLog(@"%@", token);
}