Xcode 8.0 beta дает ошибку после импорта Firebase
Я создаю пустой быстрый проект с Xcode 8.0 beta 5 или 6 и импортирую Firebase с использованием cocoapods, таких как Firebase. Все отлично в процессе импорта. Я настраиваю firebase с комментарием FIRApp.Configure()
. Я могу работать с аутентификацией, но когда я пытаюсь добраться до базы данных, это не сработало.
Ошибка времени сборки в FIRApp.h
как:
"Conflicting nullability specifier on return types, 'nullable' conflicts with existing specifier 'non null'"
Снимок экрана с ошибкой сборки FIRApp.h
Также такая ошибка в консоли:
2016-08-26 13:00:32.719: <FIRInstanceID/WARNING> STOP!! Will reset deviceID from memory.
2016-08-26 13:00:32.719: <FIRInstanceID/WARNING> Failed to fetch default token Error Domain=com.firebase.iid Code=6 "(null)"
2016-08-26 13:02:08.329: <FIRInstanceID/WARNING> Failed to retrieve the default GCM token after 5 retries
Я не мог решить проблему.
Ответы
Ответ 1
Предупреждение о времени сборки связано с обновлением Xcode 8 при проверке объявления об идентификаторе. Это должно быть безобидным и исправленным в предстоящем выпуске.
Ошибки FIRInstanceID связаны с ошибкой keychain в бета-версии Xcode 8. Смотрите radar. Проблема с цепочкой ключей влияет только на работу симуляторов. Должно быть исправление до окончания бета-тестирования. В то же время обходной путь заключается в том, чтобы включить обмен ключами (см. Ответ Бенджамина) или использовать реальное устройство.
Ошибка в цепочке ключей фиксируется в Xcode 8.2.
Ответ 2
На самом деле это не связано с какой-либо ошибкой, а с тем, что ваш общий доступ к ключам отключен по умолчанию, и вам нужно включить его.
В Навигаторе проектов выберите цель. На вкладке Возможности, включите общий доступ к цепочке цепочек. Это должно избавиться от всех проблем.
Ответ 3
Предупреждения о продолжительности времени могут быть исправлены таким образом.
Перейдите к Pods -> Build Settings -> Use Legacy Swift Language Version
и установите его на No
, это сработало для меня.
Очистите проект и выполните его.
Я смог воспроизвести предупреждения и исправить несколько раз.