我们完全卡住了,请帮忙。
我和我的团队制作了一个 iPhone 应用,这是我们第一次尝试 iOS 开发。
一切都很顺利,直到我们提交应用并在应用商店上架后——推送通知服务就无法工作了。我在网上搜索并按照其他人的建议对我们的应用进行了仔细检查,但我找不出问题所在。因此,我在这里发布了这个问题。
以下是我们所做的事情:
我们构建了应用程序,将其命名为“AppMaster”。
我们在 iOS 证书门户上创建了名为“pushtest”的 AppId。该 ID 启用了开发和生产环境下的推送通知功能。
我们从上述 AppId 创建了一个名为“AppMasterPushTest”的开发 Provisioning。此 Provisioning 用于内部测试,团队中的每个人都在自己的 Mac 上安装了它。
我们的服务器使用 Java 编写,并使用 java-apn 包。在测试过程中,我们下载了开发环境的证书文件,并输出了 .p12 文件。然后我们使用该包的 api--withSandboxDestination() 和该 .p12 文件将消息推送到“沙盒”服务器进行测试,测试结果良好,通知正常接收。
我以为我们已经准备好了,于是我们创建了另一个名为“AppMaster”的 AppId,并仅在生产环境中启用推送通知。此 Id 写入应用程序的 Bundle Identifier 中。
我们使用 AppId(步骤 5 中创建的)创建了另一个名为“appMaster”的生产 Provisioning,其中分发方式设置为“应用商店”。我们将其下载并重新构建应用程序。该应用程序被提交到 Apple,并在应用商店上线。
在服务器端,我们再次下载了生产环境的证书并输出了 .p12 文件。然后,我们编写程序使用 api--withProductionDestination() 和刚刚输出的 .p12 文件将消息推送到生产服务器。
我们从应用商店安装了应用程序。可悲的是,推送通知从未被传递。
有什么我们漏掉的吗?顺便提一下,我们在第五步创建的ID看起来像是“XXX.com.company.appname”,但在应用程序的Bundle Identifier中,我们只设置了前缀为“com.company.appname”的部分。这可能是问题所在吗?
欢迎任何想法。
请成为我们的救星,谢谢。