配置文件 + 推送通知 + 生产环境与开发环境

12

我正在开发一个使用推送通知的iOS应用程序,并且现在准备提交它。但在此之前,我希望测试一下生产服务器以外的推送通知,以确保一切工作正常。到目前为止,沙盒环境一直正常运行。

经过一番搜索,我了解到从 ssl://gateway.sandbox.push.apple.com:2195 切换到 ssl://gateway.push.apple.com:2195 不足以实现目标,因为生产环境和沙盒环境使用不同的推送令牌。显然,我需要一个新的Provisioning Profile带有生产环境的授权信息,将新证书安装到我的服务器上,并使用该Profile重新构建我的应用程序,以便它知道如何创建正确的推送令牌。

因此,经过所有步骤后,我甚至无法在我的手机上运行构建;XCode显示:

这个配置文件不能安装到设备上

以下是我所做的步骤。如果我漏掉了什么,请告诉我:

  • 在我的iOS Developer Center中,我确保我的AppID在Apple Push Notification Service下“启用了生产环境”。

  • 同样在我的iOS Developer Center中,我创建了我的Production Push SSL证书,经过必要的转换步骤,并将生成的.pem文件安装到我的服务器上。

  • 按照说明,我创建了“一个包含您希望用于通知的App ID的新配置文件”。我这样做是通过进入Provisioning,点击“Distribution”选项卡并创建新的配置文件完成的。我已确认此配置文件的“授权信息”部分设置为“生产”。

  • 我在我的项目设置中选择了配置文件,但XCode显示:

    这个配置文件不能安装到设备上

    我现在被卡住了。


1
随着苹果的Testflight的加入,您现在可以在上线之前测试生产推送通知。您只需上传一个构建并将证书更改为生产环境即可(还要指向苹果的实时推送而非沙盒)。 - AMAN77
2个回答

31

构建应用的即时分发版本,并在您自己的设备上安装。这将使用生产APN网关和证书。


14

您无法在设备上安装使用Appstore分发(生产)配置文件编译的应用程序,只有苹果审核人员才能这样做。您只能测试使用开发模式并使用沙盒服务器编译的应用程序的推送功能。

如果您想要测试生产服务器,则必须使用AdHoc分发配置文件编译应用程序,并启用您想要进行测试的设备。显然,您必须重新编译应用程序,然后使用App Store分发配置文件将其发送进行审核。


我发现我可以使用App Store分发配置文件(在Debug配置文件下)安装使用Xcode构建的应用程序。然而,调试器无法附加(这对于App Store版本是预期的)。话虽如此,我仍然能够在iPad上启动应用程序并测试生产推送通知设置。 - penfold
这对我来说听起来很奇怪。虽然你可以使用AdHoc分发配置文件来做到这一点,但是用App Store的配置文件来实现同样的功能对我来说听起来很奇怪。你是在使用越狱设备吗? - viggio24
不,没有越狱,虽然我可能会混淆。 :-) 现在再次阅读我的评论,似乎不太可能运行一个没有UDID配置文件的应用程序...也许它仍然是使用Ad Hoc配置文件构建的,并且仍然从生产服务接收推送通知? - penfold
你确定我们不能在生产服务器上测试推送通知吗?我还有另一台 iPhone 在另一个城市,我想用那个设备测试推送通知,我该怎么做?请告诉我。 - Nitin
更新:如果有人发现这个旧答案,今天的解决方案是苹果的TestFlight。 - ToolmakerSteve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接