####<環境>
Xcode 8.3.3
Swift 3.0
####<解決したいこと>
Firebaseのpush通知が届かない
####<これまでの流れ>
0. Firebase push通知実装
- Firebase push 通知来るようになる
- 幾度かやるうちに、来なくなり、アプリをアンインストールして、新たにfcm_token取得するも
全く通知が来なくなる
3. 証明書関連を再度作り直して、設定し直したが通知は未だ来ず
####<調べたこと>
Messaging.messaging().fcmTokenをprintし、出力されたものをpostmanで叩くも、メッセージは届かず
json
1{ 2 "to" : "cgPsAVdMtK4:APA91bHbXbyhdpH***********************************************************************************************************", 3 "data" : { 4 "body" : "ccccccc", 5 "title" : "bbbbbbb" 6 }, 7 "notification" : { 8 "body" : "aaaaaaa", 9 "title" : "bbbbbbb" 10 }, 11 "priority" : "high" 12}
Successはするが、メッセージは届かず
result.json
1{ 2 "multicast_id": 8897815685636669835, 3 "success": 1, 4 "failure": 0, 5 "canonical_ids": 0, 6 "results": [ 7 { 8 "message_id": "0:1508753976046713%55fb285955fb2859" 9 } 10 ] 11}
FireBaseの管理画面でメッセージを送り、端末idやアプリプラットフォームでフィルターかけたが、図のように、完了はするが送信できてない状況
※追記しましたが、この送信カウントが増えない問題は治りました
####<AppDelegate.swiftは以下のような感じで書いてます>
Swift
1func settingRegisterRemoteNotifications() { 2 if #available(iOS 10.0, *) { 3 UNUserNotificationCenter.current().delegate = self 4 let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] 5 UNUserNotificationCenter.current().requestAuthorization( 6 options: authOptions, 7 completionHandler: {_, _ in 8 UIApplication.shared.registerForRemoteNotifications() 9 }) 10 } else { 11 let settings: UIUserNotificationSettings = 12 UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil) 13 UIApplication.shared.registerUserNotificationSettings(settings) 14 } 15 } 16 17 func application(_ application: UIApplication,didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { 18 TMUserManager.saveFcmTokenToLocal(fcmToken: Messaging.messaging().fcmToken!) 19 Messaging.messaging().apnsToken = deviceToken 20 }
同じような状況になった方がいらっしゃいましたら、その当時やった解決法など共有いただけたら幸いです。よろしくお願いします
####<翌日追記>
上記でFirebase管理画面からメッセージを送信してもカウントされないと説明していましたが、翌日見ると、送信のカウントはfirebaseのコンソール上から、確認できました。
####<これまでの流れで試したことに追記します>
(1)新たなアプリを作成し、pushが来てないものとは別のdeveloperアカウント、かつ別のFirebaseのProjectで試す
※google-info-plistやprovisioningなど一から作成してます
→ push通知来ました
(2)新たなアプリを作成し、pushが来てないものと同じdeveloperアカウント、かつ同じFirebaseのProjectで試す
※(1)で重複したものを使ったりしてます
→ push通知来ました
(3)(2)で作成した、証明書やbundle id など反映させ、pushがくるか実行
→ push通知こず...................途方に暮れてます
#解決しました!!!!!!!!!!!!!!!!!!
ローカルにあるアプリケーションのキャッシュ?的なものがおそらく、通知を弾いていると推測し、
まずローカルにある証明書周りなどで関連しなそうなものを徹底的に削除しました。そのほかライブラリ配下のXcode関連のキャッシュを削除しました。それでもダメだったので、github上にあるprojectをローカルに引っ張って来て、それで再度試したところ、push通知が来ました!
自分の解決方法はちょっと特殊で、非効率かもしれませんが、何かしらの手助けになれば幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。