Хобрук: Ваш путь к мастерству в программировании

SMS-подтверждение Firebase на iOS — «Несоответствие токена»

При попытке бета-тестирования моего приложения с некоторыми внешними пользователями ни один из них не мог правильно войти в приложение, используя SMS-проверку номера телефона. Все разработчики могли использовать приложение при сборке непосредственно из Xcode, но любой, кто устанавливал его по ссылке, не мог его использовать.

Каждый пользователь, пытающийся войти/зарегистрироваться, получит сообщение об ошибке Token Mismatch без какой-либо другой информации.

У меня есть действующий производственный сертификат APNS, почему он не работает??


Ответы:


1

Шаги, которые я предпринял для решения проблемы:

  1. Убедитесь, что у меня есть действительные сертификаты development и production APNS, загруженные на панель управления Firebase, в разделе «Настройки проекта»> «Обмен сообщениями в облаке».

сертификаты приборной панели

  1. В Xcode в файле <my app>.entitlements убедитесь, что для параметра APS Entitlements установлено значение «разработка» или «производство», в зависимости от ситуации тестирования.

права

  1. Наконец (это то, чего мне не хватало), проверьте внутри своего AppDelegate.swift и внутри метода для didRegisterForRemoteNotificationsWithDeviceToken, измените значение с .sandbox на .prod, или на .unknown, чтобы приложение пакет определяет, какой тип токена использовать, на основе вашего профиля подготовки.

введите описание изображения здесь

29.09.2017
  • Подробный, хорошо отформатированный ответ. Какая редкость. Продолжать идти! 29.09.2017

  • 2

    Шаг 1: импортируйте Firebase

    2. Добавьте следующее в свой AppDelegate:

    override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        let firebaseAuth = Auth.auth()
        firebaseAuth.setAPNSToken(deviceToken, type: AuthAPNSTokenType.unknown)
    
    }
    
    override func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        let firebaseAuth = Auth.auth()
        if (firebaseAuth.canHandleNotification(userInfo)){
            print(userInfo)
            return
        }
    }
    

    По крайней мере, это сработало для меня.

    27.08.2020

    3

    В моем случае у меня было type:FIRAuthAPNSTokenTypeSandbox в AppDelegate.m

    Установка его на type:FIRAuthAPNSTokenTypeProd решила проблему.

    22.02.2021
    Новые материалы

    Прогресс в технологии Трансформеров часть 3
    Многомасштабный управляющий сигнальный преобразователь для бесфазного синтеза движения (arXiv) Автор: Линтао Ван , Кун Ху , Лей Бай , Юй Дин , Ваньли Оуян , Чжиюн Ван . Аннотация:..

    Представляем поддержку компонентов Vue.js. Мгновенный HMR и многое другое.
    Хотя у FuseBox уже был плагин Vue, он был базовым и не имел многих функций, которые делали работу с Vue.js такой приятной. Однако с этим выпуском мы рады сообщить, что в FuseBox..

    Приключения в Javascript, часть 1
    Я продолжаю думать о том, чтобы писать больше, но чем больше я думаю об этом, тем меньше я это делаю. Итак, сегодня я перестал думать и начал писать. Отсюда можно только спускаться… В..

    Понимание дженериков в TypeScript: подробное руководство
    Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..