Jam*_*rpe 17 push-notification apple-push-notifications ios
我的应用程序现已在应用程序商店中提供,因此我已将其下载到我的设备中.推送通知在开发期间工作正常.我正在使用JavaPNS发送通知,我已将其切换为指向Apple的生产服务器.
但是,我现在从APNS服务器收到无效令牌错误.
我将Archive方案设置为"Release",并且我将Release set设置为使用此分发配置文件:

在该配置文件中,您可以看到我正确设置了环境:

但我仍然得到错误.当我查看我的数据库时,我认为应用程序返回给我的设备令牌与开发人员相同,因此可能是问题所在.但我不知道为什么它会返回,因为应用程序已正确签名.这是我用于测试的设备,这可能是个问题吗?关于这里发生了什么的任何其他想法?
谢谢!
编辑:我没有在我的代码中存储令牌,Eran的回答表明,唯一的其他可能性是我的数据库中的旧令牌,或者应用程序未被生产配置文件签名.我清理了我的数据库,所以我知道它不是前者,对于后者,我不知道情况会怎样,因为我只有一个分发配置文件,正如我上面所示,它正确设置"aps-environment"键.XCode甚至不允许我使用开发配置文件进行应用商店提交,是吗?其他一些可能性:
我通过通知发送的密钥出错可能会导致"无效令牌"吗?如果是,我可以为现有配置文件重新生成此密钥吗?
为推送通知,AppID中是否包含另一个配置文件?这可能导致无效令牌错误吗?
Jam*_*rpe 19
我重新下载了推送生产证书并将其从钥匙串中导出为.p12.这似乎解决了这个问题.虽然一个糟糕的私钥给我"无效令牌"错误,但这似乎很奇怪.
Era*_*ran 17
用于生产的设备令牌与开发设备令牌不同,因此如果您将开发令牌发送到生产APNS服务器(或反之亦然),则问题的原因就在于此.
切换到生产时,您可能没有从服务器中删除开发设备令牌.
或者,如果您从生产应用程序获取开发令牌,则应用程序将返回本地存储的设备令牌(您可能在开发期间存储在设备上),而不是要求Apple获取新令牌,或者(如果您确实要求Apple提供当前令牌并仍然获得开发令牌)您的应用程序未使用生产配置文件签名.