我们完全被困住了,请帮忙。苹果推送通知不生产
我和我的团队做了一个iPhone应用程序,这是我们第一次在iOS上尝试。
一切都很好,直到我们提交我们的应用程序,并成为应用程序商店可用 - 推送通知服务不起作用。我搜索了网络,并试图通过人们的建议仔细检查我们的应用程序,但我找不到错在哪里。所以这个问题在这里发布。
这是我们所做的事情:
我们构建应用程序,假设它的命名 “AppMaster”。
我们在iOS Provisioning Portal上创建了名为“pushtest”的AppId。此ID在开发和生产上启用了推送通知。
我们从上面的appId创建了名为“AppMasterPushTest”的开发配置。此配置供内部测试,团队中的每个人都将其安装在他们的Mac上。
我们的服务器是由Java实现的,我们使用了java-apn包。在测试过程中,我们下载了用于开发的认证文件并写出了.p12文件,并通过使用该包的api - 带有该.p12文件的withSandboxDestination()将我们的消息推送到“沙箱”服务器。测试进行得很顺利,收到通知。
我认为我们已经做好准备了,所以我们创建了另一个名为“AppMaster”的AppId,并且只为生产启用了推送通知。此ID用应用程序的包标识符编写。
我们在步骤5中从AppId制作了名为“appMaster”的另一个配置文件,分配方法设置为“App Store”。下载它并重建应用程序。这一个被提交给苹果公司,并在应用程序上运行。
服务器端,我们下载了生产认证并再次写出.p12文件。并使程序通过使用api-withProductionDestination()将消息推送到生产服务器,并将.p12写出。
我们从App Store安装了应用程序。可悲的是,通知从未交付。
有什么我们错过了?顺便说一句,我们在步骤5中创建的id看起来像“XXX.com.company.appname”,但在应用程序的捆绑标识符中,我们只设置了“com.company.appname”部分而没有前缀。这可能是问题吗?
欢迎任何想法。
请成为我们的保护者。谢谢。
你自己说过。推送应用程序ID和实际的包ID应该是相同的。您的证书也可能存在问题。确保您的主要分发证书和推送证书使用相同的SSH RSA密钥对进行签名。 – 2013-03-24 06:16:07
您可以尝试从.p12创建一个pem文件,然后尝试通过PHP发送推送。这里是链接 - http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 – 2013-03-24 19:15:02
谢谢你们。关于应用ID,我认为Eran是对的。而我们的服务器是纯java的,添加一个php工具将会是太多工作。 – 2013-03-25 07:58:35