2016-06-25 21 views
6

Uruchamianie aplikacji demonstracyjnej FCM na moim iPhone nie działa - identyfikator Firebase to zero.Identyfikator instancji Firebase FCM jest zerowy (aplikacja szybkiej instalacji na prawdziwym urządzeniu)

Kroki do odtworzenia:

  1. pod try Firebase i uruchom 10: quickstart-ios/messaging/FCM.xcodeproj
  2. Skopiuj mój plik GoogleService-Info.plist do projektu
  3. Uruchom aplikację się na 5s iPhone (iOS 9.3.2)
  4. Zaakceptuj okno dialogowe z prośbą o pozwolenie na wysyłanie powiadomień
  5. Kliknij przyciski
  6. Instancja Id Token jest nil

My Mac posiada odpowiednie certyfikaty, aby rozwijać i wdrażać aplikacje:

  1. mam zarówno dystrybucja iOS i iOS Provisioning rozwój profile, wybrane za pomocą 'automatyczny' ustawienia.
  2. Mam zainstalowany zarówno dystrybucja iOS i certyfikaty rozwoju iOS, kod podpisany przy użyciu „automatyczne: iPhone Developer” opcja
  3. mam „produkcja” certyfikat SSL zainstalowane: „Jabłko powiadomień push usług SSL (Piaskownica & Produkcja)”

widzę dużo hałasu w dziennikach, ale najbardziej znaczący jest ten błąd:

Failed to fetch default token Error Domain=com.firebase.iid Code=0 "(null)" 

Oto pełna moc konsoli:

2016-06-25 16:15:08.339 FCM[7398:4128979] Configuring the default app. 
2016-06-25 16:15:08.383 FCM[7398:] <FIRAnalytics/INFO> Firebase Analytics v.3200000 started 
2016-06-25 16:15:08.396: <FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO 
2016-06-25 16:15:08.397: <FIRInstanceID/WARNING> Failed to fetch APNS token Error Domain=com.firebase.iid Code=1001 "(null)" 
2016-06-25 16:15:08.403: <FIRMessaging/INFO> FIRMessaging library version 1.1.0 
2016-06-25 16:15:08.413: <FIRMessaging/WARNING> FIRMessaging AppDelegate proxy enabled, will swizzle app delegate remote notification receiver handlers. Add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO 
2016-06-25 16:15:08.443 FCM[7398:] <FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist 
2016-06-25 16:15:08.508 FCM[7398:] <FIRAnalytics/INFO> Firebase Analytics enabled 
2016-06-25 16:15:08.538: <FIRInstanceID/WARNING> APNS Environment in profile: development 
2016-06-25 16:15:08.848 FCM[7398:4128979] Connected to FCM. 
2016-06-25 16:15:08.893: <FIRInstanceID/WARNING> Failed to fetch default token Error Domain=com.firebase.iid Code=0 "(null)" 
2016-06-25 16:15:22.311: <FIRInstanceID/WARNING> Failed to fetch default token Error Domain=com.firebase.iid Code=0 "(null)" 
2016-06-25 16:15:36.774 FCM[7398:4128979] Unable to connect to FCM. Error Domain=com.google.fcm Code=2001 "(null)" 
2016-06-25 16:15:40.552 FCM[7398:4128979] Subscribed to news topic 
2016-06-25 16:15:43.100 FCM[7398:4128979] InstanceID token: (null) 
2016-06-25 16:15:49.036: <FIRInstanceID/WARNING> Failed to fetch default token Error Domain=com.firebase.iid Code=0 "(null)" 
2016-06-25 16:16:31.022: <FIRInstanceID/WARNING> Failed to fetch default token Error Domain=com.firebase.iid Code=0 "(null)" 
2016-06-25 16:17:32.976: <FIRInstanceID/WARNING> Failed to fetch default token Error Domain=com.firebase.iid Code=0 "(null)" 
2016-06-25 16:17:32.976: <FIRInstanceID/WARNING> Failed to retrieve the default GCM token after 5 retries 
2016-06-25 16:19:10.662 FCM[7398:4128979] InstanceID token: (null) 
2016-06-25 16:19:10.980: <FIRInstanceID/WARNING> Failed to fetch default token Error Domain=com.firebase.iid Code=0 "(null)" 
2016-06-25 16:19:10.981: <FIRInstanceID/WARNING> Failed to retrieve the default GCM token after 5 retries 
+0

Widząc takie same na iPad 2 (9.3). – IanS

+0

Pamiętaj, że problem występuje tylko wtedy, gdy zostanie wdrożony na prawdziwym urządzeniu. Działa dobrze na symulatorze, co oznacza, że ​​mój profil udostępniania i certyfikaty są poprawne, prawda? – IanS

+0

Możliwy duplikat [Powiadomienia do Firebase APNS nie udało się pobrać tokenu] (http://stackoverflow.com/questions/37438369/apns-firebase-notification-failed-to-fetch-token) –

Odpowiedz

1

Właśnie prowadził ten sam kod na symulatorze (iPhone 5, iOS 9.3) i uzyskać token bez żadnych problemów.

widzę wiele tych samych ostrzeżeń, choć ...

2016-06-25 16:38:31.353 FCM[2546:42455] Configuring the default app. 
2016-06-25 16:38:32.561 FCM[2546:] <FIRAnalytics/INFO> Firebase Analytics v.3200000 started 
2016-06-25 16:38:32.833 FCM[2546:] <FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist 
2016-06-25 16:38:32.901: <FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO 
2016-06-25 16:38:32.928: <FIRInstanceID/WARNING> Failed to fetch APNS token Error Domain=com.firebase.iid Code=1001 "(null)" 
2016-06-25 16:38:32.971: <FIRMessaging/INFO> FIRMessaging library version 1.1.0 
2016-06-25 16:38:33.189: <FIRMessaging/WARNING> FIRMessaging AppDelegate proxy enabled, will swizzle app delegate remote notification receiver handlers. Add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO 
2016-06-25 16:38:51.094: <FIRInstanceID/WARNING> Failed to fetch APNS token Error Domain=NSCocoaErrorDomain Code=3010 "REMOTE_NOTIFICATION_SIMULATOR_NOT_SUPPORTED_NSERROR_DESCRIPTION" UserInfo={NSLocalizedDescription=REMOTE_NOTIFICATION_SIMULATOR_NOT_SUPPORTED_NSERROR_DESCRIPTION} 
2016-06-25 16:38:51.096: <FIRInstanceID/WARNING> Failed to fetch APNS token Error Domain=NSCocoaErrorDomain Code=3010 "REMOTE_NOTIFICATION_SIMULATOR_NOT_SUPPORTED_NSERROR_DESCRIPTION" UserInfo={NSLocalizedDescription=REMOTE_NOTIFICATION_SIMULATOR_NOT_SUPPORTED_NSERROR_DESCRIPTION} 
2016-06-25 16:38:51.140 FCM[2546:42883] CFNetwork SSLHandshake failed (-9806) 
2016-06-25 16:38:51.141 FCM[2546:42883] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9806) 
2016-06-25 16:38:51.460 FCM[2546:42455] Connected to FCM. 
2016-06-25 16:38:56.709 FCM[2546:42455] InstanceID token: fgbPv5tnsPk:APA91bHUWOmuLmd4UkLXcp3Lysp92fH6bOb7tfmbjHehFOt_NPnc6tnMk-7YT51VASkk-dyHZAl01QRcedwqGUhHMiIXeV_xknBXppncu0WyjKLYhaVQ08bYKNZ5M1CuSjtk9l0HPyJX 
2016-06-25 16:38:56.711 FCM[2546:42455] Unable to connect to FCM. Error Domain=com.google.fcm Code=2001 "(null)" 
2016-06-25 16:38:57.505 FCM[2546:] <FIRAnalytics/INFO> Firebase Analytics enabled 
2016-06-25 16:40:03.845 FCM[2546:42455] Unable to connect to FCM. Error Domain=com.google.fcm Code=2001 "(null)" 
2016-06-25 16:40:06.534 FCM[2546:42455] InstanceID token: fgbPv5tns9...... 
0

Problem spowodowany był moim użycia certyfikatu „produkcja” SSL, zamiast jednego „rozwoju”. Instalacja, która wydawała się naprawiać.

Miałem błędne założenie, że zarówno wersja rozwojowa, jak i produkcyjna będą obsługiwane przez certyfikat "Usługa Apple Push Notification SSL (Sandbox & Production)". Może tak być w przypadku rodzimych APN, ale nie działa w Firebase.

0

dla mnie, jeśli się stało, kiedy nie używać FIRAuth przed uzyskać wartości z Firebase.

FIRAuth.auth()?.signIn(withEmail: "[email protected]", password: "123456", completion: { (user, error) in 
if(error != nil){ 
    print(error) 
    return 
} 


let ref = FIRDatabase.database().reference(fromURL: "https://firdemo-84b6b.firebaseio.com/").child("users") 

ref.observe(.value, with: { (snapshot) in 
    print(snapshot.key) 
    print(snapshot.value) 
    }, withCancel: { (error) in 
     if(error != nil){ 
      print(error) 
      return 
     } 
    }) 

}) 

Proszę spróbować. I daj mi znać, jeśli to nie zadziała.

3

Spróbuj zaktualizować Firebase/Core do v3.4.4, naprawił dla mnie nieoczekiwane błędy. Inaczej typowe poprawki są:

  • Włączanie Push Notifications ramach aplikacji Capabilities
  • uniknąć uaktywnienia unregisterForRemoteNotifications. Po tym połączeniu nie można już zarejestrować urządzenia, aby przesyłać powiadomienia.
  • Ustawienie FirebaseAppDelegateProxyEnabled do NO w pliku info.plist. Myślę, że są błędy z ich metody swizzling.
  • Wywołanie [[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeUnknown] w metodzie didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken