通过 TestFlight 未收到推送通知

5
我的应用目前正在通过TestFlight被测试人员测试。问题是,他们没有收到任何推送通知。当我将设备连接到我的Mac并直接从Xcode运行应用程序时,它在我的设备上工作正常。
我感觉我已经尝试了几乎所有的方法,从将证书从dev更改为production,到重新创建新的生产APNS证书并使用引用它的新配置文件构建等等。
我知道这个问题已经在其他话题上讨论过,但我在我的情况下从未找到正确的答案。我无法在这里发布图片,因为我没有足够的声望,但我有相关的截图。欢迎任何帮助 :)
用于诊断的元素:
  • 当我直接从x-code运行应用程序时,它在我的设备上运行。
  • 测试人员在其设备上第一次安装时会被适当地询问是否要授权推送通知(如果他们想再次被询问,则必须执行 重置应用程序的推送通知设置中描述的操作)。
  • 注册正在工作,因为我可以在日志中看到他们的设备令牌(但我感觉无论使用生产证书还是开发证书构建应用程序,令牌始终相同,不确定是否正常)。
  • 我有一个APNS生产证书。
  • 我有一个分发配置文件,并启用了“推送通知”。它与我的“完整”appID链接(而不是带有“*”的通用ID)。
  • 我使用分发证书(而不是调试模式)在发布模式下登录构建,并使用上述描述的provisionning profile(分发版,与我的应用程序ID相关联)
  • 在提交构建之前检查“二进制和授权”窗口时,我看到provisionning profile是正确的,并且“aps-environment”设置为“production”。
  • 服务器端:使用javapns(https://code.google.com/p/javapns/)从google app engine服务器进行APNS调用。正如我所说,通知在我自己的设备上收到了正确的通知,所以我想这个调用是有效的。我们有一个从APNS开发证书生成的.p12文件和一个从APNS生产证书生成的.p12文件,并且我已经尝试使用两者进行呼叫,但它不起作用。服务器端代码与以前的版本没有更改,在商店中的应用程序中工作。问题确实集中在使用testflight进行测试上。

谢谢大家!


你如何发送推送通知?是直接连接到APNS还是通过某些第三方工具? - alinoz
我编辑了我的问题,添加了有关服务器端代码的所有说明。谢谢。 - David
我的猜测是Xcode构建正在使用开发配置文件。您是否已尝试使用Ad Hoc分发配置文件重现错误?此外,您是否有用于测试和生产的不同服务器? - Mats
当您在自己的设备上运行时,请尝试将应用程序存档并使用iTunes进行安装。然后尝试通知,如果您没有收到通知,则可能是您在服务器端使用的证书存在问题,或者新设备令牌未在服务器端正确注册。当通知未发送时,您的javapns与APNS通信时会接收到哪些代码? - alinoz
1个回答

2
如果您按照Ray Wenderlich的教程并在开发模式下使一切正常,那么问题很可能是因为您现在需要为生产模式创建一个新的.pem文件。
因此,您需要执行与开发证书(即.p12文件)完全相同的步骤,再次使用生产证书下载,您可以在iOS开发中心获得:

完成此操作后,您将需要重新下载配置文件。 - Juan Boero

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