我不得不更改APNS提供商,当然我为新提供商生成了新证书。
如果APNS注册的设备是Apple的新手
,事情进展顺利问题发生在我从Apple的角度来看已经注册的设备,因为回调方法: - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
未被调用,我无法向新提供商注册令牌。
我正在寻找一个解决方案来重置Apple知道的所有令牌,这样每个设备都将作为新设备进行管理,最后调用didRegisterForRemoteNotificationsWithDeviceToken(前一个原始令牌并不重要)
有人可以告诉我这是否可行或如何解决问题?
由于
的Dario
答案 0 :(得分:0)
这个问题与我的代码有关。 这个问题可以删除。 感谢
回复Sofie
嗨索菲, 这是一个非常古老的问题,我试着记住。
可能我们是在iOS8时间......当你读到的时候,我在我的代码中犯了一个错误。
当我收到来自Apple的令牌注册(didRegisterForRemoteNotificationsWithDevice)时,我使用类似于handleNewDeviceToken的函数将值存储在UsersDefaults中:deviceToken
在该功能中,为了避免无用的网络活动,我只是在收到的令牌与已经存储在UserDefaults中的令牌不同时调用了APN服务提供商 - 当时是UrbanAirShip(这是我的错误!)
出于不同的原因,我不得不将服务提供商从UrbanAirship更改为Parse。
检查正确的迁移我发现只有新设备能够在(新服务提供商)数据库中注册,但当然,在调查结束时,这是正常的,因为旧设备没有调用该服务提供商注册,因为存储在用户默认值中的令牌已经存在(因此已经在"旧"服务提供商数据库中注册)
实际上,函数didRegisterForRemoteNotificationsWithDevice当然只在启动应用程序时被调用...。
我删除了userDefaults的令牌比较,每次在服务提供商处注册令牌并重建" new"数据库中。
我希望已经清楚,当然我希望能帮到你。
的Dario