Вопрос или проблема
- Создайте новый проект Flutter с помощью
flutter create demo
- Соберите и запустите новый проект для настольного macOS — сборка прошла успешно
- Добавьте package_info_plus и используйте его в приложении, чтобы показать номер версии
- Повторите шаг 2 — неудача!
- Создайте публичный репозиторий с этим демонстрационным проектом с запускаемым действием GitHub, пытаясь воспроизвести ошибку, которую я вижу локально — сборка прошла успешно
Итак, что-то идет не так в моей локальной среде.
Чип | Память | macOS | XCode |
---|---|---|---|
Apple M1 Pro | 16 ГБ | 14.7.1 (23H222) | Xcode 16.1 версия сборки 16B40 |
Запуск lib/main.dart на macOS в режиме отладки...
Выполнение установки подов...
Сборка приложения для macOS...
--- xcodebuild: ПРЕДУПРЕЖДЕНИЕ: Используется первый из нескольких совпадающих пунктов назначения:
{ platform:macOS, arch:arm64, id:00006000-001851E921D2801E, name:My Mac }
{ platform:macOS, arch:x86_64, id:00006000-001851E921D2801E, name:My Mac }
/Users/charney/demo/macos/Pods/Target Support Files/package_info_plus/package_info_plus-umbrella.h:13:9: ошибка: двойная кавычка при включении "FPPPackageInfoPlusPlugin.h" в заголовке фреймворка, ожидались угловые скобки
/Users/charney/.pub-cache/hosted/pub.dev/package_info_plus-8.1.0/macos/package_info_plus/Sources/package_info_plus/include/package_info_plus/FPPPackageInfoPlusPlugin.h:5:9: ошибка: файл 'FlutterMacOS/FlutterMacOS.h' не найден
/Users/charney/demo/build/macos/Build/Intermediates.noindex/Pods.build/Debug/package_info_plus.build/VerifyModule/package_info_plus_objective-c++_arm64-apple-macos10.14_gnu++20/Test/Test.framework/Headers/Test.h:1:9: ошибка: (фатальная) не удалось создать модуль 'package_info_plus'
/Users/charney/demo/build/macos/Build/Intermediates.noindex/Pods.build/Debug/package_info_plus.build/VerifyModule/package_info_plus_objective-c++_arm64-apple-macos10.14_gnu++20/Test/Test.mm:1:9: ошибка: (фатальная) не удалось создать модуль 'Test'
/Users/charney/demo/build/macos/Build/Intermediates.noindex/Pods.build/Debug/package_info_plus.build/VerifyModule/package_info_plus_objective-c_arm64-apple-macos10.14_gnu17/Test/Test.framework/Headers/Test.h:1:9: ошибка: (фатальная) не удалось создать модуль 'package_info_plus'
/Users/charney/demo/build/macos/Build/Intermediates.noindex/Pods.build/Debug/package_info_plus.build/VerifyModule/package_info_plus_objective-c_arm64-apple-macos10.14_gnu17/Test/Test.m:1:9: ошибка: (фатальная) не удалось создать модуль 'Test'
** СБОРКА НЕ УДАЛАСЬ **
Ошибка: Процесс сборки не удался
Я также опубликовал эту проблему на https://github.com/fluttercommunity/plus_plugins/issues/3341
Я пытался безрезультатно
flutter clean
flutter pub cache repair
rm -fr ~/.pub-cache
Ответ или решение
Ошибка ‘FlutterMacOS/FlutterMacOS.h’ не найден в package_info_plus: Подробное руководство по решению
При работе с Flutter, особенно при разработке приложений для macOS, пользователи иногда сталкиваются с ошибками, связанными с отсутствующими файлами, такими как 'FlutterMacOS/FlutterMacOS.h'
. Эта проблема может возникать в различных обстоятельствах, и в данной статье мы рассмотрим конкретное решение этой проблемы, основываясь на вашем вопросе.
Шаги для воспроизведения ошибки
- Создание нового Flutter проекта: Вы создали новый проект с помощью команды
flutter create demo
, и он успешно скомпилировался для macOS. - Добавление пакета
package_info_plus
: При использовании этого пакета для отображения номера версии приложения вы столкнулись с проблемой при последующей сборке. - Локальный и облачный Build: Плохая новость заключается в том, что ваш локальный проект не собирается, тогда как аналогичный проект в GitHub Actions проходит сборку без ошибок.
Посмотрим на вывод ошибки
Ошибка:
error: 'FlutterMacOS/FlutterMacOS.h' file not found
указывает на то, что система не может найти заголовочный файл Flutter для macOS. Это может быть вызвано несколькими причинами.
Решение проблемы
Вот несколько шагов, которые могут помочь вам устранить проблему:
-
Проверьте установку Flutter: Убедитесь, что вы используете последнюю стабильную версию Flutter и что все необходимые зависимости установлены. Для этого выполните команду:
flutter doctor
Это поможет вам увидеть текущее состояние вашей установки Flutter и выявить возможные проблемы.
-
Обновите пакеты и плагины: Попробуйте обновить все пакеты и плагины в вашем проекте:
flutter pub upgrade
-
Проблемы с CocoaPods: Убедитесь, что вы используете актуальную версию CocoaPods и выполните следующие команды в директории
ios
вашего проекта:pod install pod update
-
Убедитесь в корректности настроек Xcode: Иногда конфигурация Xcode может вызывать проблемы. Откройте файл проекта вашего Flutter приложения в Xcode и убедитесь, что все пути к библиотекам правильно настроены.
-
Удалите и переустановите кэш пакетов: Вы уже пробовали использовать
flutter clean
, но попробуйте также удалить кэш пакетов и переустановить его:rm -rf ~/.pub-cache/hosted/pub.dev/package_info_plus* flutter pub get
-
Проверьте путь к заголовочному файлу: Убедитесь, что находящийся в ошибке заголовочный файл (
FlutterMacOS.h
) действительно доступен по указанному пути. Если его нет, это может указывать на проблемы с установкой Flutter для macOS. -
Проверка архитектур: Убедитесь, что вы компилируете проект с правильной архитектурой. Иногда наличие Universal2 бинарей, особенно на чипах M1, может влиять на сборку.
-
Создайте новый проект с нуля: Иногда проще создать новый проект и заново добавить необходимые пакеты, избегая возможных ошибок конфигурации.
Заключение
Если перечисленные шаги не помогли разрешить проблему, вы также можете обратиться за помощью на форумы Flutter или GitHub, предоставив как можно больше информации о вашей среде разработки и конфигурации. Сообщества разработчиков активно делятся опытом, что может помочь вам найти решение.
Помните, что поддержание актуальности всех компонентов вашей среды разработки — критически важный аспект для стабильной работы ваших приложений на Flutter.