现在已经有一周了,我正面临着这个问题。我试图通过3种不同的方式让推送通知服务在我的应用上运行。以下是我遵循的步骤(我想注册开发人员帐户,创建应用程序ID并生成推送证书):
检索设备令牌。
将aps_developer_identity.cer插入资源下的PushMeBaby应用程序。
复制粘贴设备令牌的空格(也尝试没有空格)到self.deviceToken
将aps_developer_identity粘贴到self.certificate
中运行应用程序时,我被要求允许使用私钥,这是我的输出:
2012-02-01 15:10:44.464 PushMeBaby [21219:903] MakeServerConnection():0
2012-02-01 15:10:44.482 PushMeBaby [21219:903] SSLNewContext():0
2012-02-01 15:10:44.486 PushMeBaby [21219:903] SSLSetIOFuncs():0
2012-02-01 15:10:44.488 PushMeBaby [21219:903] SSLSetConnection():0
2012-02-01 15:10:44.490 PushMeBaby [21219:903] SSLSetPeerDomainName():0
2012-02-01 15:10:44.492 PushMeBaby [21219:903] SecKeychainOpen():0
2012-02-01 15:10:44.493 PushMeBaby [21219:903] SecCertificateCreateFromData():0
2012-02-01 15:10:44.504 PushMeBaby [21219:903] SecIdentityCreateWithCertificate():0
2012-02-01 15:10:44.505 PushMeBaby [21219:903] SSLSetCertificate():0
2012-02-01 15:11:12.420 PushMeBaby [21219:903] SSLHandshake():0
然后当我按下"推" :
2012-02-01 15:11:26.767 PushMeBaby [21219:903] SSLWrite():0 78
和"推"再次:
2012-02-01 15:11:38.668 PushMeBaby [21219:903] SSLWrite():0 78
变量的值"已处理"不会改变!当然,我的iPhone上没有任何推送通知。
从网站http://code.google.com/p/javapns/wiki/GeneralRequirements
下载所需的图书馆 生成.p12文件,导出推送证书和与之关联的私钥。
复制粘贴java代码
import javapns.Push;
public class PushTest {
public static void main(String[] args) {
Push.alert("Hello World!", "keystore.p12", "keystore_password", false, "My token");
}
}
进入java类,用不带空格的正确设备标记替换设备标记,添加.p12文件和正确的密码。
调试项目允许我看到这条消息:
已传输:设备令牌我的设备令牌
但没有通知我的iPhone! 更改设备令牌时,我有一个"无效的设备令牌"消息
按照步骤here
进行操作 得到消息:
连接到APNS
消息已成功发送
但我的iPhone上也没有收到任何通知!
你们有什么问题吗? 这可能是配置文件的问题吗?但那么我能够检索设备令牌吗?我在之前的一些问题中看到了与日期设置相关的内容,所以我在php脚本中添加了这个,我的iPhone设置为自动设置日期参数。我想我也试过退出应用程序,但没有做到。我做了一些不寻常的事情,它使用了2个不同应用程序的应用程序ID,我现在只是疯狂猜测,因为我不知道在哪里看。任何帮助将非常感激。感谢
答案 0 :(得分:2)
实际上是来自IT团队的错误,它产生了错误的SSL推送证书!
并且问题中提到的变量“已处理”的值与有效负载中的字符数有关。