Программирование

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

  1. Убедитесь, что у вас установлен CocoaPods ≥ 1.12.
    bash
    sudo gem install cocoapods
    
  2. В корне проекта создайте/обновите файл GoogleService-Info.plist через Firebase Console (Project → Add App → iOS).
  3. Скопируйте 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).

bash
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

  1. В ios/Podfile добавьте:
    ruby
    platform :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
    
  2. Удалите старые pods и установите заново:
    bash
    cd ios
    pod deintegrate
    pod install --repo-update
    
  3. Откройте 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»

Эта ошибка обычно возникает из‑за:

  1. Несоответствия версии Firebase‑SDK и установленного CocoaPods‑репозитория.

    • Выполните pod repo update и pod install --repo-update.
    • Убедитесь, что в Podfile указана актуальная версия Firebase (≥ 10.0).
  2. Проблем с Derived Data.

    • В Xcode выберите Product → Clean Build Folder (⇧ ⌘ K).
    • Удалите папку ~/Library/Developer/Xcode/DerivedData.
  3. Неправильные пути в 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 не поддерживает биткод).
  4. Конфликт с Swift‑пакетами.

    • Если вы используете Swift‑пакетный менеджер, отключите его (use_frameworks! в Podfile).

Если после всех шагов ошибка сохраняется:

  • Попробуйте удалить каталог Pods, Podfile.lock и выполнить pod install с нуля.
  • Проверьте, что у вас установлена последняя версия Xcode (12‑15) и SDK (iOS 13‑15).

Проверка и отладка

  1. В App.js инициализируйте Firebase:
    js
    import { firebase } from '@react-native-firebase/app';
    console.log(firebase.app().options);
    
  2. Запустите приложение на симуляторе/устройстве.
  3. В консоли в Xcode ищите сообщения вроде:
    FirebaseApp: Successfully initialized app "ReactNative"
    
  4. Если приложение аварийно завершается, откройте 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‑приложении.

Источники

  1. Документация react‑native‑firebase – поддерживаемые версии
    https://rnfirebase.io/#supported-versions

  2. Firebase iOS SDK installation guide
    https://firebase.google.com/docs/ios/setup

  3. CocoaPods troubleshooting guide
    https://guides.cocoapods.org/using/troubleshooting.html

  4. Xcode Derived Data cleanup
    https://developer.apple.com/documentation/xcode/finding-and-removing-deriveddata

  5. Проблемы с Module map file в Xcode
    https://stackoverflow.com/questions/65333741/module-map-file-not-found

Авторы
Проверено модерацией
Модерация