【发布时间】:2015-07-09 21:48:43
【问题描述】:
我的应用目前正在由测试人员通过 TestFlight 进行测试。问题是他们没有收到任何发送的推送通知。将它连接到我的 mac 并直接从 x-code 运行应用程序时,它可以在我自己的设备上运行。 我觉得我已经尝试了几乎所有的东西,从将证书从开发更改为生产,再到重新创建新的生产 APNS 证书并使用引用它的新配置文件进行构建,等等。
我知道这个问题已经在其他主题上讨论过,但我从来没有在我的案例中找到正确的答案。我不能在这里发布图片,因为我没有足够的声誉,但我有相关的截图。 欢迎任何帮助:)
有助于诊断的元素:
- 当我直接从 x-code 运行应用程序时,它在我的设备上运行。
- 正确询问测试人员是否要在其设备上授权推送通知(至少是第一次安装,之后如果要再次询问他们必须执行Reset push notification settings for app 中所述的操作)
- 注册正在工作,因为我可以在日志中看到他们的设备令牌(但我感觉令牌总是相同的,无论应用程序是使用生产证书还是开发证书构建的,不确定是不是正常)。
- 我有 APNS 生产证书。
- 我有一个分发配置文件,启用了“推送通知”。它与我的“完整”应用 ID 相关联(而不是带有“*”的通用应用 ID)。
- 我正在使用分发证书(不是调试模式)在发布模式下登录构建,并且我正在使用上述配置文件(分发文件,与我的应用程序 ID 相关联)
- 当我在提交构建之前检查“二进制和权利”窗口时,我看到配置文件是正确的,并且“aps-environment”设置为“生产”。
- 服务器端:APNS 调用是通过使用来自谷歌应用引擎服务器的 javapns (https://code.google.com/p/javapns/) 进行的。就像我说的那样,通知是在我自己的设备上正确收到的,所以我猜这个电话正在工作。我们有一个从 APNS 开发证书生成的 .p12 文件和一个从 APNS 生产证书生成的 .p12 文件,我尝试使用两者进行调用,但它不起作用。服务器端代码与以前的版本相比没有变化,它正在与商店中的应用程序一起工作。问题真正集中在使用 testflight 进行测试上。
谢谢大家!
【问题讨论】:
-
如何发送推送通知?直接连接到 APNS 还是通过一些第三方工具?
-
我编辑了我的问题以添加有关服务器端代码的所有解释。谢谢。
-
我的猜测是 Xcode 构建正在使用开发配置文件。您是否尝试过使用 Ad Hoc 分发配置文件重现该错误?另外,你们有单独的服务器用于测试和生产吗?
-
当您在自己的设备上运行时,请尝试存档应用程序并使用 iTunes 安装它。然后尝试通知,如果您没有收到通知,那么您在服务器端使用的证书有问题,或者新设备令牌未在您的服务器端正确注册。在通知未发送的情况下,您的 javapns 在与 APNS 通信时收到什么代码?
标签: ios push-notification apple-push-notifications