【问题标题】: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 构建中被调用,所有关联的 UserNotifications 和 Messaging 委托方法都被调用。我正在运行 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
      相关资源
      最近更新 更多