IPhoneにインストールすると、このエラーが発生します。
Xcode8を使用した修正は、単に機能でキーチェーン共有を有効にすることでした
App.xcworkspaceファイルを開き、[ターゲット]> [機能]> [キーチェーン共有]を有効にするを選択します
この問題の考えられる理由:
次のことを確認してください:
また、これらのチュートリアルに従う必要があります。
そして、ユーザーに許可を求めることを忘れないでくださいそれをアプリに追加するだけです(たとえば、AppDelegateファイルまたは他のViewControllerに):
let notificationTypes: UIUserNotificationType = [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound]
let pushNotificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: nil)
application.registerUserNotificationSettings(pushNotificationSettings)
application.registerForRemoteNotifications()
私は同じ問題を持っていますデフォルトのトークンエラーを取得するのに失敗しました
そのため、Firebaseトークンをリクエストするときに時間を確認してください。
開発APN証明書をFirebaseにアップロードしたことを確認してください。プロジェクトの設定=> CLOUD MESSAGINGタブに移動します。
これでしばらく動けなくなってきましたが、私にとってそれを機能させることができなかったのは、セカンダリのファイアベースアプリを使用していたからです。私にはバグのように見えます。回避策として、追加のアプリを初期化する必要がありましたbeforeデフォルトアプリ(AppDelegate.m内):
//initialise the secondary app, for example:
NSString *logFirebaseOptionFile = [[NSBundle mainBundle] pathForResource:@"GoogleService-LOG-Info" ofType:@"plist"];
FIROptions *firebaseOptions = [[FIROptions alloc] initWithContentsOfFile:logFirebaseOptionFile];
NSString *logAppName = @"mybands_logs";
[FIRApp configureWithName:logAppName options:firebaseOptions];
//then the default app for FCM to work
[FIRApp configure];
まあ、私もこの同じ問題を抱えています。他の投稿で紹介されたソリューションを使用して修正することはできません。クライアントアプリFCM SDKとFCMサーバー間の通信がうまくいかないようです。
私の修正は、VPNにログインしたことです(中国本土では、これを行わないとGoogleサービスを使用できません)。その後、firebaseトークンを取得できました。
また、トークンの取得に失敗した場合。次回、[[FIRInstanceID instanceID] token]を使用してfirebaseトークンにアクセスしようとします。 Firebase SDKは、トークンがまだnilの場合、トークンの取得を再試行し、この試行が成功すると、トークン更新通知(kFIRInstanceIDTokenRefreshNotification)が送信されます。
このエラーを処理する前に、この行を修正する必要があります。
デフォルトトークンの取得に失敗しましたError Domain = com.firebase.iid Code = 0 "(null)"