OneSignal iOS 问题 "No Push Token" 与 SDK 2.0.7

OneSignal iOS issue "No Push Token" with SDK 2.0.7

我遇到了来自 OneSignal 和推送通知的奇怪错误。我有 3 台设备(2 台 iPhone,1 台 mini iPad)。在我完成推送通知的整个过程后,只有我的 iPad 收到来自 OneSignal 的推送通知。我所有的设备都在我的开发者帐户中注册,我发现最奇怪的情况是我使用 NSLOG didRegisterForRemoteNotificationsWithDeviceToken 来查看是否每个连接的设备都收到了一个令牌,它们确实都收到了一个令牌,但出于某种原因 OneSignal 没有't。只有 iPad 标记。我能看到的唯一区别是 iPad 是 9.3.2 而两部 iPhone 都是 9.3.4。所有设备上都安装了相同的应用程序,从 AppDelegate 调用了 oneSignal 注册方法。有没有人也一直在为这个问题而苦苦挣扎?我附上了我的 oneSignal 帐户的图片。提前致谢。 OneSignal All Users dashboard

好吧,在删除和创建证书超过 100 次、配置配置文件等一周后,我终于找到了问题所在。 我正在使用 objective-c 所以有必要使用 -ObjC 标志。 转到项目 > 你的目标 > 构建设置 > 在搜索栏上写 other linker flags,该部分将出现并双击它,它将允许你添加 -ObjC

如果没有这个标志,SDK 将不会注册 DeviceToken。 此外,如果您使用 Parse SDK,或 GoogleMaps SDK,或 Facebook SDK,您可能会有冲突。可能的解决方案是:

  • Parse SDK(不知道使用parse server会不会出现冲突):删除ParseCrashReporting ParseFacebookUtils ParseTwitterUtils

  • Facebook SDK(也许对于新版本,这不是必需的):删除 theFBAudienceNetwork

  • GoogleMaps:GoogleMaps SDK 基本上不能与 -ObjC 标志一起使用,所以我现在使用WEB API 使用带有 JSON 响应的 HTTP 调用。 (在 GoogleMaps Developers 网站上都有解释)

希望这能帮助像我一样苦苦挣扎的人。 请有关此主题的任何问题,请不要犹豫,问我。我想现在我知道每一个可能的失败。

你是我的英雄。我已经为此苦苦挣扎了一个月。我什至和 OneSignal 谈过好几次,他们不知道为什么这会发生在我身上!再次感谢!

从 SDK 的 2.1.11 版本开始,此问题已得到修复。如果您使用 CocoaPods 管理 SDK,请确保运行 pod 更新