我的应用目前正在通过TestFlight被测试人员测试。问题是,他们没有收到任何推送通知。当我将设备连接到我的Mac并直接从Xcode运行应用程序时,它在我的设备上工作正常。
我感觉我已经尝试了几乎所有的方法,从将证书从dev更改为production,到重新创建新的生产APNS证书并使用引用它的新配置文件构建等等。
我知道这个问题已经在其他话题上讨论过,但我在我的情况下从未找到正确的答案。我无法在这里发布图片,因为我没有足够的声望,但我有相关的截图。欢迎任何帮助 :)
用于诊断的元素:
我感觉我已经尝试了几乎所有的方法,从将证书从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进行测试上。
谢谢大家!