全部产品
云市场

移动推送 iOS : iOS 13 Device Token 获取失败?

更新时间:2019-08-15 10:15:58

苹果公司 iOS 13 将于 2019 年秋季正式发布,而 iOS 端使用 SDK 的版本 1.9.8 及更低的版本 在「Xcode 11 beta 」和「iOS 13 beta 」上,无法将返回的 deviceToken 上传到 CloudPush 服务器,以至最终推送通知失败。
  1. /*
  2. * APNs注册成功回调,将返回的 deviceToken 上传到 CloudPush 服务器
  3. */
  4. - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  5. NSLog(@"Upload deviceToken to CloudPush server.");
  6. [CloudPushSDK registerDevice:deviceToken withCallback:^(CloudPushCallbackResult *res) {
  7. if (res.success) {
  8. NSLog(@"Register deviceToken success, deviceToken: %@", [CloudPushSDK getApnsDeviceToken]);
  9. } else {
  10. NSLog(@"Register deviceToken failed, error: %@", res.error);
  11. }
  12. }];
  13. }
  • 具体原因:deviceToken 数据格式发生了变化,以至于老版本的 SDK 不能正确的解析出 deviceToken 上报到 CloudPush 服务器。

  • 解决办法:只需升级 SDK 到 1.9.9 的版本 。控制台上已发布该版本,并且 cocoaPods 也更新到该版本。您的代码中不需做任何改动。

  • 备注:新的 SDK 1.9.9 版本,上下兼容,适配 iOS任何版,建议您跟换升级。