Firebase в React Native 0.8 для iOS: решение Module map file
Установите Firebase в проект React Native 0.8 для iOS, откатитесь к версии @react-native-firebase/app, исправьте ошибку Module map file и получите доступ к Firebase‑модулям.
Как правильно установить и настроить Firebase в проекте React Native 0.8 для iOS, учитывая ошибки «Module map file … not found» после установки @react-native-firebase/app версии 23.7.0?
Краткий ответ
Для корректной установки Firebase в старый проект React Native 0.8 на iOS — необходимо сначала откатиться к совместимой версии @react-native-firebase/app (обычно 8.x или 9.x), затем добавить нужные Firebase‑пакеты в Podfile, выполнить pod install --repo-update, очистить Derived Data и пересобрать приложение. Ошибка «Module map file … not found» обычно вызвана несовместимостью SDK‑версий или отсутствием обновленного репозитория CocoaPods.
Содержание
- Подготовка проекта к Firebase
- Выбор совместимой версии @react‑native‑firebase
- Настройка iOS‑сайда: Podfile, GoogleService‑Info.plist и Xcode
- Решение ошибки «Module map file … not found»
- Проверка и отладка
- Заключение
- Источники
Подготовка проекта к Firebase
- Убедитесь, что у вас установлен CocoaPods ≥ 1.12.bash
sudo gem install cocoapods - В корне проекта создайте/обновите файл
GoogleService-Info.plistчерез Firebase Console (Project → Add App → iOS). - Скопируйте
GoogleService-Info.plistв ваш Xcode‑проект (drag‑and‑drop → Copy items if needed → Copy folder references).
Важно: При работе с React Native 0.8 вы работаете с Xcode 10‑12, поэтому используйте Firebase‑SDK ≥ 10.0, но < 12.0.
Выбор совместимой версии @react‑native‑firebase
@react-native-firebase/app 23.7.0 ориентирована на RN ≥ 0.71 и iOS 15+.
Для RN 0.8 (React Native 0.56‑0.64) рекомендуется использовать старую ветку 8.x (или 9.x, если поддержка RN 0.64).
npm uninstall @react-native-firebase/app
npm install @react-native-firebase/app@8.0.0 # пример
Согласно официальной документации react‑native‑firebase, версия 8.x совместима с RN 0.64 и ниже.
Настройка iOS‑сайда: Podfile, GoogleService‑Info.plist и Xcode
- В
ios/Podfileдобавьте:rubyplatform :ios, '10.0' use_frameworks! target 'YourApp' do pod 'Firebase/Analytics' # или нужные модули pod 'Firebase/Core' pod 'react-native-firebase/app', :path => '../node_modules/@react-native-firebase/app' end - Удалите старые pods и установите заново:bash
cd ios pod deintegrate pod install --repo-update - Откройте
YourApp.xcworkspace, убедитесь, чтоGoogleService-Info.plistнаходится в целевой группе и отмечен как Copy Bundle Resources.
Совет: Если вы видите ошибку
Module map file … not found, проверьте, что вBuild Settings → Framework Search Pathsприсутствует путь кPods/Target Support Files/React/Reactи$(inherited).
Решение ошибки «Module map file … not found»
Эта ошибка обычно возникает из‑за:
-
Несоответствия версии Firebase‑SDK и установленного CocoaPods‑репозитория.
- Выполните
pod repo updateиpod install --repo-update. - Убедитесь, что в
Podfileуказана актуальная версия Firebase (≥ 10.0).
- Выполните
-
Проблем с Derived Data.
- В Xcode выберите Product → Clean Build Folder (⇧ ⌘ K).
- Удалите папку
~/Library/Developer/Xcode/DerivedData.
-
Неправильные пути в Build Settings.
- В Build Settings → Framework Search Paths добавьте
$(PROJECT_DIR)/node_modules/react-native/Reactи$(PROJECT_DIR)/node_modules/@react-native-community/cli-platform-ios(если используется). - Убедитесь, что
ENABLE_BITCODEвыставлен вNO(Firebase не поддерживает биткод).
- В Build Settings → Framework Search Paths добавьте
-
Конфликт с Swift‑пакетами.
- Если вы используете Swift‑пакетный менеджер, отключите его (
use_frameworks!вPodfile).
- Если вы используете Swift‑пакетный менеджер, отключите его (
Если после всех шагов ошибка сохраняется:
- Попробуйте удалить каталог
Pods,Podfile.lockи выполнитьpod installс нуля. - Проверьте, что у вас установлена последняя версия Xcode (12‑15) и SDK (iOS 13‑15).
Проверка и отладка
- В
App.jsинициализируйте Firebase:jsimport { firebase } from '@react-native-firebase/app'; console.log(firebase.app().options); - Запустите приложение на симуляторе/устройстве.
- В консоли в Xcode ищите сообщения вроде:
FirebaseApp: Successfully initialized app "ReactNative" - Если приложение аварийно завершается, откройте Console.app и посмотрите подробный stack‑trace.
Заключение
- Для старых проектов React Native 0.8 не используйте @react-native-firebase 23.x; откатитесь к версии 8.x или 9.x.
- Ставьте
GoogleService-Info.plistв Xcode, обновляйте CocoaPods и очищайте Derived Data. - Ошибка «Module map file … not found» почти всегда связана с пакетом Pods; повторите
pod install --repo-updateи проверьте настройки пути. - После исправления вы сможете пользоваться полной функциональностью Firebase (Analytics, Auth, Firestore и др.) в вашем iOS‑приложении.
Источники
-
Документация react‑native‑firebase – поддерживаемые версии
https://rnfirebase.io/#supported-versions -
Firebase iOS SDK installation guide
https://firebase.google.com/docs/ios/setup -
CocoaPods troubleshooting guide
https://guides.cocoapods.org/using/troubleshooting.html -
Xcode Derived Data cleanup
https://developer.apple.com/documentation/xcode/finding-and-removing-deriveddata -
Проблемы с Module map file в Xcode
https://stackoverflow.com/questions/65333741/module-map-file-not-found