0

我正在尝试将推送通知从我的 Java 后端发送到我的移动应用程序。为此,我使用 notnoop java-apns 库。我设法设置了所有东西,并且一切都在开发(开发证书和配置文件)上完美运行。

我想尽快发布该应用程序,但首先我想设置所有内容,以便在它上线后做好准备。所以我创建了一个“App Store and Ad Hoc”证书,以及一个“Ad Hoc”配置文件。然后我尝试使用该 P12 文件,该文件应该与应用程序上线后我将使用的文件相同。但不幸的是,我遇到了以下异常:

java.net.SocketException: Connection closed by remote host
    at sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1510)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)
    at java.io.OutputStream.write(OutputStream.java:75)
    at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:328)
    at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:312)
    at com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:46)
    at com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:56)
    at com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36)
    at com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:45)
    .....

有谁知道可能会发生什么?怎么可能在开发而不是 AdHoc 上正常工作(我猜也是生产,因为他们使用相同的推送通知证书)?

4

1 回答 1

1

发布问题后我立即找到了答案!基本上,在开发模式下,我有以下代码来初始化服务:

this.service = APNS.newService().withCert(p12Stream, passphrase).withSandboxDestination().build();

但是,当使用生产证书时,您不能再使用沙箱目标,而是需要使用以下内容:

this.service = APNS.newService().withCert(p12Stream, passphrase).withProductionDestination().build();
于 2015-10-03T23:27:05.730 回答