neb*_*ebs 3 notifications push adhoc ios
首先让我说我现在一直在寻找解决方案几个小时.我已经阅读了几乎所有关于此的SO问题,但没有一个解决方案有效.我还阅读了关于这个主题的官方苹果文档以及其他一些教程.基本上我是这样说的,以避免明显的建议(确保它不是"沙盒"等).
我在配置门户中为我的应用程序提供了dev和prod推送通知证书.我已经按照步骤使用苹果自己的文档创建了dev和prod的pem文件.
我有与此应用程序绑定的开发和临时分发配置文件.
我可以使用dev配置文件直接从xcode到设备构建我的应用程序,或者使用ad hoc分发配置文件将其存档(然后我使用beta builder安装到设备上).
无论我是使用dev配置文件直接构建还是使用ad hoc配置文件(通过beta构建器),推送通知在使用sandbox + dev pem文件时都能正常工作.但是一旦我使用prod服务器+ prod pem文件进行测试,就不会发送推送通知.
我有两个用于测试的php脚本,一个用于开发,一个用于prod.除了服务器url(sandbox vs not sandbox)和引用的pem文件(dev或prod)之外,它们基本相同.
我发现很奇怪,即使使用临时构建,我仍然可以使用沙箱和开发人员发送推送通知,这是正常的吗?
从开发到刺激我还有什么可以做的吗?我觉得我此刻已经尝试了一切.我已多次重新生成证书和配置文件.我遵循几乎完全相同的程序来生成开发和prod pem文件和我的PHP脚本和几乎相同(对于prod和dev).
我不知道这是服务器问题还是客户端(app)问题?我可能会遗忘某个地方吗?
我希望有人可以对此有所了解,因为它开始让我发疯!
干杯.
neb*_*ebs 11
好吧,我发现了问题,这是我的一个愚蠢的错误.我会在这里分享以防其他人犯同样的错误.
我不知道的关键是设备令牌对于dev和prod(对于同一设备)是不同的.我正在使用我在dev中测试时获得的设备令牌来测试产品.这在dev中运行良好,但是当我切换到prod时,我在php脚本中保留了相同的设备令牌(假设,错误地,设备令牌对于同一设备是相同的)但是在prod中注册的实际设备令牌是不同.
在实践中,这不会发生,因为设备令牌被发送到服务器,但是当我测试时,我使用的是硬编码设备令牌,因为我不想涉及服务器.
希望这会让某些人感到沮丧.