Firebase 通知在 Testflight 上不起作用
Posted
技术标签:
【中文标题】Firebase 通知在 Testflight 上不起作用【英文标题】:Firebase Notification not working on Testflight 【发布时间】:2016-09-17 18:58:39 【问题描述】:我创建了带有通知的应用程序。当我在开发人员模式下发送通知时,我会收到通知。但是当我发送发布模式时,我什么也没得到。我读到我应该将证书更改为产品证书。但这没有帮助。这是我的 appdelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
// Override point for customization after application launch.
FIRApp.configure()
let notificationTypes : UIUserNotificationType = [.alert, .badge, .sound]
let notificationSettings : UIUserNotificationSettings = UIUserNotificationSettings(types: notificationTypes, categories: nil)
application.registerForRemoteNotifications()
application.registerUserNotificationSettings(notificationSettings)
return true
private func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings)
FIRMessaging.messaging().subscribe(toTopic: "/topics/main")
private func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
FIRInstanceID.instanceID().setAPNSToken(deviceToken as Data, type: FIRInstanceIDAPNSTokenType.prod)
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
print(userInfo["gcm.message_id"]!)
print(userInfo)
func application(_ application: UIApplication, dirtings: UIUserNotificationSettings)
UIApplication.shared.registerForRemoteNotifications()
func tokenRefreshNotification(notification: NSNotification)
if let refreshedToken = FIRInstanceID.instanceID().token()
print("InstanceID token: \(refreshedToken)")
// Connect to FCM since connection may have failed when attempted before having a token.
connectToFcm()
func connectToFcm()
FIRMessaging.messaging().connect (error) in
if (error != nil)
print("Unable to connect with FCM. \(error)")
else
print("Connected to FCM.")
private func applicationDidEnterBackground(application: UIApplication)
FIRMessaging.messaging().disconnect()
print("Disconnected from FCM.")
【问题讨论】:
你设置kGGLInstanceIDAPNSServerTypeSandboxOption:@NO;
了吗?就像这里所做的一样:***.com/q/37628158/4625829?
不,我认为。 :/ 我会尝试并尽快回复。
无效。 :/ 我使用的是 fcm 而不是 gcm。
很难确定您没有收到详细信息的原因。我建议再次检查docs 并仔细检查。
谢谢 - 我想你现在已经解决了;我只是想让其他读过这一系列 cmets 的人理解 :)
【参考方案1】:
刚刚经历过,
我关闭了推送并从苹果开发中心删除了证书并重新创建它们,这使得一切正常运行。
我也将这行代码设置为,
FIRInstanceID.instanceID().setAPNSToken(deviceToken as Data, type: FIRInstanceIDAPNSTokenType.sandbox)
我会在推送到应用商店时将其更改为.prod
。
【讨论】:
【参考方案2】:我找到了解决方案。问题出在产品证书上。我忘记将产品证书添加到 Firebase。
【讨论】:
以上是关于Firebase 通知在 Testflight 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 推送通知无法在手机上使用,但可以在模拟器中使用