Firestore не удалось построить с Flutter для iOS - PullRequest
0 голосов
/ 02 мая 2018

Я хочу добавить Firestore в приложение Flutter, и у меня проблемы с запуском его на iOS. Я уже добавил эту строку в pubspec.yaml

cloud_firestore: ^ 0.6.3

Флаттер обновлен. Флаттер доктор говорит, что у меня v0.3.1.

При компиляции приложения для симулятора iOS я получил эту ошибку сборки

 Xcode's output: ↳     /
Users/*********/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.2.3/ios/Classes/FirebaseCorePlugin.m:7:9:
fatal error: 'Firebase/Firebase.h' file not found
    #import <Firebase/Firebase.h>
        ^~~~~~~~~~~~~~~~~~~~~


 1 error generated

Я также запускаю обновление pod, чтобы убедиться, что это не проблема с cocoapods.

UPDATE

После другого исследования я обнаружил, что удаление # use_frameworks! из Podfile в папке iOS позволяет выполнить проект для компиляции. Но что делать, если это невозможно удалить?

1 Ответ

0 голосов
/ 02 мая 2018

Обновление дает мне достаточно информации для диагностики (надеюсь). Flutter не очень хорошо поддерживал #use_frameworks & swift, но это было исправлено относительно недавно (середина апреля 2018). Однако, возможно, он еще не вышел на бета-канал на момент написания статьи.

То, что происходило, когда #use_frameworks был установлен ранее, это то, что он не связывал все в нужные библиотеки, и ошибка cocoapods мешала ему находить определенные файлы. Новейшая версия всего использует динамическое связывание, но имеет static_framework = true в подфайле для зависимостей со статическими зависимостями, так что все, что им нужно, действительно связывается в нужном месте.

Это исправлено и протестировано на главной ветви / канале, но, вероятно, уже должно было дойти до ветви / канала разработки.

Вот шаги, чтобы убедиться, что ваша среда будет поддерживать исправление, из этой другой проблемы github :

  • убедитесь, что у вас установлен Cocoapods 1.5.0 (pod --version должен скажем> = 1.5.0)
  • измените все зависимости, которые у вас есть на плагины firebase_xxx, google_sign_in или cloud_firestore, на новейшие версии (ищите записи в журнале изменений, относящиеся к Cocoapods 1.5.0)
  • измените ios/Podfile на последнюю версию в мастер ветке Flutter (https://github.com/flutter/flutter/tree/master/packages/flutter_tools/templates/cocoapods)
  • удалить ios / Podfile.lock и ios / Pods
  • переключиться на главную ветвь Flutter (или dev), используя flutter channel <branch>
  • flutter clean ; flutter run
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...