iOS推送证书即将过期的解决办法
1.证书请求文件CSR备好,放到桌面,如何创建CSR请看官方文档。
2.登录apple开发者中心。
apple开发者 > Account >Certificates,IDs & Profiles >Identifiers >找到对应app的Identifier(和xcode工程中的Bundle ldentifier一致)
imageIdentifiers里找到对应app的Identifier(和xcode工程中的Bundle ldentifier一致),然后找到Push Notifications > Edit
image.png
这里就可以看到你的app对应的推送证书了,点击Create Certificate创建证书:
Development SSL Certificate测试环境推送证书;
Production SSL Certificate 生产环境证书;
image
来到创建证书这里,上传已备好的CSR文件,点击Continue即可完成创建(生产和测试过程一样,同一个CSR文件)。
image
然后回到对应app的Identifier页面,就能看到多出了刚刚创建的推送证书和即将过期推送的证书了,旧的证书可以Revoke或者不管都行。
点击Download将证书下载到本地,双击打开下载的开发环境和生产环境证书,系统会将其导入钥匙串中。
-
在钥匙串中找到刚才导入的证书,分别导出.P12证书文件,交给后台配置。
image
到此,证书就配置完成了。
其它问题
-
证书不受信任,可能是AppleWWDRCA不小心被清理或者过期,重新下载AppleWWDRCA证书地址,下载下来后双击自动添加到钥匙串即可。
image
-
推送证书验证:
image
SmartPush
证书会从钥匙串选择,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);
}
网友评论