Вот ошибка, которая была зарегистрирована в Xcode при запуске на реальном устройстве в режиме выпуска:
[AppCheckCore][I-GAC003001] Неожиданный ответ API: {
URL: [recacted]/apps/[redacted]:exchangeDeviceCheckToken } { Код состояния: 400, Заголовки { "Alt-Svc" = ( "h3=":443"; ma=2592000,h3-29=":443"; ма=2592000" ); «Кодирование контента» = (gzip); «Длина контента» = (153); "Content-Type" = ( "application/json; charset=UTF-8"); Date = («Вторник, 30 сентября 2025 г., 22:42:47 по Гринвичу»); Сервер = (ESF); Vary = ( Origin, «X-Origin», Referer ); "x-content-type-options" = (nosniff); "x-frame-options" = (SAMEORIGIN); "x-xss-защита" = ( 0 ); } }, body: {
"error": { "code": 400, "message": "Приложение не зарегистрировано: [отредактировано].", "status": "FAILED_PRECONDITION" } } .
12.2.0 - [FirebaseFirestore][I-FST000001] AppCheck не удалось: 'Операция не может быть завершена. Сервер ответил с ошибкой: - URL: [отредактировано]:exchangeDeviceCheckToken - Код состояния HTTP: 400 - Тело ответа: { "ошибка": { "код": 400, "сообщение": "Приложение не зарегистрировано: [отредактировано].", "статус": "FAILED_PRECONDITION" }
Глядя на ошибку, это выглядит например, Firebase думает, что мое приложение не зарегистрировано. Теперь консоль Firebase сообщает, что App Attest зарегистрирован, и App Attest работал в предыдущих выпусках. Но есть ключевая деталь: «exchangeDeviceToken» подразумевает, что по какой-то причине Firebase App Check пытается выполнить DeviceCheck вместо App Attest... что не имеет особого смысла, потому что мой код Flutter:
Код: Выделить всё
await FirebaseAppCheck.instance.activate(
androidProvider: AndroidProvider.playIntegrity,
appleProvider: AppleProvider.appAttest,
providerWeb: ReCaptchaV3Provider('')
);
Уведомление о миграции
Параметры androidProvider и appleProvider будут устаревшими в будущем выпуске. Вместо этого используйте поставщикиAndroid и поставщикApple, которые поддерживают новые классы поставщиков, включая AndroidDebugProvider и AppleDebugProvider, для прямой передачи токенов отладки.
Похоже, появился новый синтаксис. Теперь я попробовал поэкспериментировать с этим, но в конечном итоге мне не удалось заставить это работать, потому что я не знаю, как использовать новый параметр поставщикаApple. Я искал документацию, но, похоже, документация Firebase не была обновлена для этого нового синтаксиса.
Это меня застревает... конечно, это может быть что-то еще, но ошибка очень специфическая, я никогда не получал такой ошибки. Так это новый синтаксис, который мне нужно использовать, и если да, то как правильно это сделать, чтобы мое приложение правильно прошло проверку приложения (которая зарегистрирована правильно). Обратите внимание, что я пытался запустить это в режиме выпуска из Xcode, Flutter, а также пробовал сборку выпуска TestFlight, но все это не удалось.
Изменить: я уже пробовал очистить свой проект и повторно запустить команду конфигурации flutter fire в терминале, чтобы обновить GoogleService-Info.plist, и другие службы Firebase работают нормально, проблема только в проверке приложений.
Подробнее здесь: https://stackoverflow.com/questions/797 ... registered
Мобильная версия