如何测试生产环境推送通知?

48

迄今为止,我使用的是开发推送证书,推送通知工作得很好。

现在我想向苹果提交我的应用程序,所以我创建了一个生产证书,并将其设置在“代码签名标识” -> “发布”下。

我还将.p12文件放置在我的生产服务器上。
但是推送现在无法正常工作。

当我从xcode运行时,它应该可以工作吗?还是只有从App Store下载应用程序时才会起作用?如果是这样,我该如何测试呢?


使用TestFlight分享您的应用程序,并遵循此答案---> https://dev59.com/wmAg5IYBdhLWcg3wBXKs#48890938 - Md Rais
5个回答

51

您可以通过构建应用程序的AdHoc版本来测试APNS生产环境。该应用程序将使用生产证书和服务器,其目的正是在您将其发送到AppleStore之前进行测试。

请查看此链接:使用AdHoc分发测试APNS需要哪种证书?


要明确的是,您不会构建应用程序的Ad Hoc版本。您需要构建应用程序的发布版本,并分发Ad Hoc版本。正是分发过程将 entitlement aps-environment 更改为“production”。 - Ben Butterworth

35

当您从应用商店下载应用程序时,生产推送将起作用。

更新:
您还可以使用应用程序的AdHoc版本测试生产推送;请参见Trinca's answer

更新:
现在,最简单的解决方案是使用Apple的TestFlight。(在TestFlight中,很容易添加新的远程用户,向他们发送电子邮件邀请,然后他们可以在任何设备上下载。)


不可以,你需要使用开发推送证书进行测试。 - FrediWeber
9
错误的。您可以使用AdHoc分发测试APNS生产环境。请见下方回答。 - Trinca
2
似乎这个问题在iOS 10中终于得到解决了 - 我刚刚遇到了这个情况。即使是使用adhoc和/或testflight(分发证书构建),应用程序仅接收开发推送,而从未接收生产证书推送。生产推送基本上只能在从应用商店下载的应用程序中工作?我会寻找一些关于此的信息。 - Jonny
1
@Jonny,不,它没有改变。从iOS 10开始,DEBUG构建获得沙盒APNS,而发布构建(无论是应用商店、TestFlight还是Ad-hoc)获得生产APNS。检查你的设置,因为应该会有一个错误提示。 - Hernán Pentimalli
好的,不确定发生了什么,但如果您所说的“发布”是指分发证书构建,则是正确的。 - Jonny

13

在配置文件中创建适用于您的应用程序的Adhoc分发配置文件。下载配置文件并安装。选择Adhoc分发配置文件对您的应用程序进行代码签名。打包ipa并保存以进行adhoc分发。将ipa复制到您的设备并测试推送。它将使用生产推送证书而不是开发证书。希望这有所帮助。


在开发和生产环境中测试时,我们需要在 PHP 代码中进行任何代码更改吗? - hardik hadwani
3
您需要将苹果URL更改为指向非沙盒URL...ssl://gateway.sandbox.push.apple.com:2195 更改为 ssl://gateway.push.apple.com:2195。 - eharo2

2

如果应用程序通过Apple TestFlight安装,则可以测试生产通知(而无需发布构建)。

这样,生产通知将被传递到应用程序中。

(如果完全相同的构建是通过HockeyApp或其他方式安装的,则不会传递生产通知。)

在iTunes Connect中的构建处理完成后,只需将构建设置为内部测试即可。


1
如果您想在生产环境中测试推送通知,需要注意以下几点:
  1. 生产推送通知只能在ipa上进行测试。您需要从AdHoc分发配置文件创建ipa。
  2. 您需要在Push API服务器上替换Push证书。在此情况下,应使用APNS Distribution证书。
  3. 如果您的API是在DOTNET中,则需要将布尔值更改为true。
  4. 项目目标上将代码签名身份更改为分发。

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