Я пытаюсь войти в учетную запись, используя аутентификацию по номеру телефона с помощью firebase.
Изначально я развернул приложение на своем устройстве, и оно работает нормально.Но когда я пытался развернуть приложение на другом устройстве, а затем выдает ошибку Token Mismatch
.
Я искал несколько ответов в stackoverflow
, а затем нашел этот ответ , и я последовал, но у меня не получилось.
Я проверил следующее:
- Убедитесь, что у меня есть действительный сертификат разработки и производства APNS, загруженный на панель мониторинга Firebase, в разделе «Параметры проекта»> «Облачные сообщения».(Мой сертификат APNS действителен до следующего года).
- В Xcode, в файле .entitlements, убедитесь, что в качестве значения среды APS задано либо «разработка», либо «производство», в зависимости от ситуации тестирования.(Я также проверил).
- Наконец (это то, чего мне не хватало), проверьте внутри вашего AppDelegate.swift и внутри метода значение
didRegisterForRemoteNotificationsWithDeviceToken
, измените значение с .sandbox
на .prod
илина .unknown
, чтобы позволить пакету приложения определять, какой тип токена использовать, основываясь на вашем профиле обеспечения.
Этот третий я также изменил
let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
print("==== This is device token ",token)
let data = Data(token.utf8)
Auth.auth().setAPNSToken(data, type: AuthAPNSTokenType.unknown)
Но все же, когда я запускаюэто приложение на другом устройстве, которое всегда выдает мне эту ошибку.
Но когда я комментирую эту строку кода // Auth.auth().setAPNSToken(data, type: AuthAPNSTokenType.unknown)
, а затем запускаю приложение, я раскомментирую эту строку кода Auth.auth().setAPNSToken(data, type: AuthAPNSTokenType.unknown)
, а затемснова запустите приложение и, наконец, оно работает.Но, к сожалению, когда я запускаю другое устройство iOS, оно все равно выдает мне ошибку.Интересно почему?