前些时间测试ios推送一直没问题,后来却常提示证书被吊销的问题,怪自己没有较深的去了解它。今天才发现这个问题是如些的简单。程序没有问题,证书却过期了,吊销掉过期的证书(点击Revoke吊销证书),重新生成新的证书。问题就解决了。
以下这个博文有相关说明(转):
http://luoyl.info/blog/2012/02/apple_push_notification_guide/
推送分为开发者和生产者,开发者推送可用来测试,如果程序没问题,就可直接把开发者的p12文件换成生产者p12文件即可。下面有测试和生产服务器地址。
相关例子(相关包网上可下载):
/**测试服务器地址 */
private static final String DEVELOPER_HOST = "gateway.sandbox.push.apple.com";
/**产品推送服务器地址 */
private static final String PRODUCT_HOST = "gateway.push.apple.com";
/**证书*/
private static final String CERTIFICATE_PATH = "test.p12";
/**证书密钥 */
private static final String CERTIFICATE_PASSWORD = "test";
/**服务器端口 */
private static final int PORT = 2195;
/** (测试用)开发 IPod token */
private static final String deviceToken = "XXDDDDSSSSSSSSSS";
public static void testPushService(){
try {
PayLoad payLoad = new PayLoad();
payLoad.addAlert("今日有更新内容!");// push的内容
payLoad.addBadge(0);// 图标小红圈的数值
payLoad.addSound("default");// 铃音
PushNotificationManager pushManager = PushNotificationManager.getInstance();
pushManager.addDevice("iPhone", deviceToken);
// Connect to APNs
pushManager.initializeConnection(PRODUCT_HOST, PORT,
CERTIFICATE_PATH, CERTIFICATE_PASSWORD,
SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
// Send Push
Device client = pushManager.getDevice("iPhone");
pushManager.sendNotification(client, payLoad);
pushManager.stopConnection();
pushManager.removeDevice("iPhone");
System.out.println("================本地服务器端推送成功!");
} catch (Exception e) {
e.printStackTrace();
}
}