【问题标题】:Apns notifications is not Working with Developement CertificateApns 通知不适用于开发证书
【发布时间】:2026-01-25 05:10:02
【问题描述】:

请建议我,因为 iam 有开发 p12 文件和依赖项,但是当通过开发证书.p12 文件发送通知时,我得到了例外。异常是(javax.net.ssl.SSLException)javax.net.ssl.SSLException:收到致命警报:internal_error

package com.push.notification.server;

import com.notnoop.apns.APNS;
import com.notnoop.apns.ApnsService;
import com.notnoop.apns.EnhancedApnsNotification;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Date;

public class ApnsTest {

    private ApnsService service;

    public ApnsTest() {
    try {

        String path = "p12 file name";

        File certFile = new File(path);
        InputStream fis = new FileInputStream(certFile);
        service = APNS.newService().withCert(fis, "pwd")
            .withSandboxDestination()
            .build();
        sendMessage();
    } catch (Exception e) {
        e.printStackTrace();
    }
    }

    public static void main(String[] args) {
    new ApnsTest();
    }

    public void sendMessage() {
    String payload = APNS.newPayload().alertBody("nnnnn").sound("default").build();
    String deviceToken = "267fe9f23984cc6d8ca7b35db3c4b829cdbe2f9f1dbd3258cbbfa8f94e3fd986";
    int now = (int) (new Date().getTime() / 1000);
    EnhancedApnsNotification notification = new EnhancedApnsNotification(EnhancedApnsNotification.INCREMENT_ID(),
        now + 60 * 60, deviceToken, payload);

    System.out.println("Sending push notification");
    try {
        service.push(deviceToken, payload);
    } catch (Exception e) {
        e.printStackTrace();
    }
    }
}

【问题讨论】:

    标签: java cordova ios5 push-notification apple-push-notifications


    【解决方案1】:

    是的,通过再次创建开发证书解决了上述问题。

    这是程序enter image description here先进入 在 Mac 上,打开钥匙串访问

    从顶部菜单中,选择

    钥匙串访问 > 证书助手 > 向证书颁发机构请求证书...

    填写您的电子邮件地址、常用名 检查保存到磁盘 按继续并将 .certSigningRequest 文件保存在某处 enter image description here

    为 App ID 配置推送通知 APP ID 注册完成后,您需要对其进行配置以使用推送通知。 [在此处输入图片描述][3] 选择刚刚创建的App ID,点击编辑 在推送通知中,单击创建证书,然后**继续 单击选择文件...并上传您之前生成并保存在 Mac 上的 .certSigningRequest 文件。单击生成。 生成证书后,将其下载到您的 Mac [在此处输入图片描述][4] 1.4 创建私钥 现在您将从下载的证书创建一个私钥。 [在此处输入图片描述][5] 双击下载的文件。它应该在钥匙串访问中打开 选择左侧的我的证书。您应该找到刚刚添加的证书。 按住 Control 键单击证书,然后选择导出“Apple Development IOS Push Services:...”... 通过在另存为对话框中选择文件格式为个人信息交换 (.p12) 将其保存为 ..p12 文件

    1.5 在 Apple Developer 门户上创建 Provisioning Profile,

    转到配置文件

    单击 + 以创建新的配置文件

    选择 iOS App Development,然后继续

    从下拉列表中选择正确的 App ID,然后继续

    从列表中选择正确的证书,然后继续

    选择你要开发的设备,继续

    输入配置文件的名称,然后生成

    下载文件

    在 Xcode 中双击打开文件。现在应该将配置文件添加到 Xcode。

    【讨论】: