我正在开发一个使用推送通知的应用。在开发设备上测试时(例如使用连接到Mac的电缆安装),它可以正确接收推送通知。但是当使用ad-hoc手段安装它时,没有收到推送通知。
但是,应用程序可以在开发和特殊方案中获取设备ID。通过在服务器上接收和记录的设备ID可以明显看出这一点。服务器在开发和临时方案中接收设备ID。但即便如此,如果使用临时方式安装应用程序,它也不会从服务器接收任何推送通知。
PS:
您对此有何不妥以及解决方案有何看法?感谢。
编辑:
当我尝试使用手动代码签名时,我得到的是:
我无法解决状态问题。我知道调试应该有不同的配置。但就目前而言,这不是主要问题。如果我能解决状态问题,我也可以解决不同的情况。
答案 0 :(得分:1)
您需要确保adhoc环境中推送通知的证书是否已正确创建。其次,UDID正确地保存在服务器上。
答案 1 :(得分:0)
首先,您应该通过在bash中运行命令security cms -D -i yourprovisionname.mobileprovision
来检查ipa中移动设备的uuid是否正确。
尾随线
<密钥GT; UUID< /密钥GT;
<串GT; XXXXXXXXXXXX-XXXXXXXX-XXXXXXXXXXXX< /串GT;
您可以解压缩.ipa文件并在Payload / App中找到embedded.mobileprovision
如果mobileprovision是正确的,您应该检查您的认证。
请注意生产环境的认证与沙箱不同。
检查认证后,您可以检查服务器端。当我们推送到沙箱(开发)时,我们会推送到gateway.sandbox.push.apple.com
,并且在分布式环境中,我们推送到gateway.push.apple.com
(没有沙箱)。