【问题标题】:Production Push Notifications using Firebase with APNs Auth Key使用 Firebase 和 APNs Auth Key 的生产推送通知
【发布时间】:2017-11-10 19:21:36
【问题描述】:

在 TestFlight 上测试我的应用程序时,我注意到我没有收到推送通知。

我已确认在从 Xcode 加载构建时,我可以接收来自云功能和 Firebase 控制台的通知。

我参考了其他类似的问题,但没有一个能反映我正在处理的确切问题。在 Firebase 中配置远程通知时,我使用的是 APNs Auth Key,我还包含了用于开发和生产的 .p12 文件。但是,.p12 文件显示为灰色并列为非活动,因为已设置 APNs Auth Key。

在我的 Apple Developer 帐户的 Certificates, Identifiers & Profiles 下,我已确保我的 APNs Auth Key 存在于左侧的 Keys 部分。我还在我的应用 ID 中设置了开发者和生产 SSL 证书,并验证它们被列为“启用”。我还验证了我有一个“活动”的 iOS 分发配置文件。

这是一个难以调试的问题,因为 Xcode 构建可以工作,而 TestFlight 构建却不能。我知道这个问题涉及生产环境和开发环境,但我不确定如何解决这个问题。

此方法在 Xcode 构建中被调用,所有关联的 UserNotificationsMessaging 委托方法都被调用。我正在运行 iOS 10.3 并在我的 info.plist 中将 FirebaseAppDelegateProxyEnabled 设置为 NO

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
     Messaging.messaging().setAPNSToken(deviceToken, type: MessagingAPNSTokenType.sandbox)
     Messaging.messaging().setAPNSToken(deviceToken, type: MessagingAPNSTokenType.prod)
}

【问题讨论】:

  • 你找到答案了吗?我面临着完全相同的问题。
  • 明天我会进去检查我的代码,然后发布解决方案。这是来自一个旧项目,我知道我后来想通了。
  • @EliWhittle 你找到解决方案了吗?
  • 有人找到解决这个问题的方法吗?我现在正面临这个问题。我想使用 APNS 身份验证密钥,但无法在生产版本中获取 APNS。

标签: ios firebase push-notification apple-push-notifications production


【解决方案1】:

对我来说,解决方法是停止使用 MessagingAPNSTokenType.sandbox 或 .prod,只需使用:

Messaging.messaging().setAPNSToken(deviceToken, type: .unknown)

在之前的应用中,我使用过:

if Config.isDebug {
    tokenType = MessagingAPNSTokenType.sandbox
} else {
    tokenType = MessagingAPNSTokenType.prod
}
Messaging.messaging().setAPNSToken(deviceToken, type: tokenType)

并将 Config 设置为依赖于 Xcode 中的构建方案。现在它似乎不适用于产品。在 Firebase 上,我现在使用的是 APNS Key,而不是旧式的 Prod 和 Dev 证书。这可能有所作为。我看到Firebase docs 现在也说:

如果令牌类型设置为 UNKNOWN Firebase 消息传递将隐式 尝试从配置中找出实际的令牌类型是什么 轮廓。除非你真的需要指定类型,否则你应该使用 而是 APNSToken 属性。

【讨论】:

    【解决方案2】:

    您需要在 info.plist 中添加对后台模式推送通知的支持。

    您也可以通过在目标设置的“签名和功能”选项卡下添加新功能来做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-08
      • 2013-06-10
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多