Подтвердить что ты не робот

Firebase, Swift: конфликтующий спецификатор nullability на типах возвращаемых значений, "nullable" конфликты с существующим спецификатором "nonnull",

Предупреждение в Firebase 3.6.0. Xcode 8 - Swift 3.

Это классы Firebase: -

  • @class FIROptions
  • @class FIRAuthCredential
  • @class FIRUserProfileChangeRequest

Предупреждающее сообщение:

  • (nullable instancetype) init NS_UNAVAILABLE;

Понял, что это может быть ошибка!.

Но если нет, какие-либо идеи, как это исправить?

4b9b3361

Ответ 1

Исходный ответ. Эта проблема исправлена ​​для меня как с последней Firebase (3.7.1). Просто сделайте "pod update Firebase", а затем очистите свой проект (очищайте папку с помощью клавиши Option, чтобы быть уверенным).

Обновленный ответ: Нет, мой плохой... проблема остается для меня тоже.

Копаем дальше, здесь есть хорошее объяснение: fooobar.com/questions/212066/...

Тем временем (так как я плохо себя чувствовал), я нашел хороший способ подавить предупреждение. Я должен был угадать тип предупреждения -Wnullability.; -)

Добавьте эти три строки #pragma вокруг строки нарушения в Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnullability"
- (nullable instancetype)init NS_UNAVAILABLE;
#pragma clang diagnostic pop

Ура!

Ответ 2

Вот решение Build Settings → Code Signing Identity → изменить отладку и выпуск для iOS Developer.

Ответ 3

Ожидая, что команда Firebase решит эту ошибку, вы можете подумать об изменении Swift Optimization Level в Build Settings до None.

Обратите внимание, что это временное решение. Верните его обратно в Fast, Whole Module Optimization после того, как Firebase выпустит исправление.

Ответ 4

В моем случае я пошел в "Настройки сборки" → "Идентификация подписи кода" → изменить отладку и выпуск для iOS Developer.

Ответ 5

Перейдите на свои Pods → Настройки сборки → Используйте устаревшую версию языка Swift и выберите "Нет", это сработало для меня.

Очистите проект и выполните его.

Я смог воспроизвести предупреждения и исправить несколько раз.

Ответ 6

Очистка папок с данными и их очистка, по-видимому, заставили эти ошибки исчезнуть для меня. Если вы видите "STOP!! Will reset deviceID из памяти". а также включить совместное использование ключей в возможностях.

Ответ 7

он решается firebase 4.0.4, просто обязательно напишите "FirebaseApp.configure()" в функции didFinishLaunchingWithOptions в делегате приложения, вместо старого "FIRApp.configure()"

удача