Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'FirebaseCore/FirebaseCore.h' file not found while building for Release Mode in Xcode Version 11.5 (11E608c)

Tags:

I am able to run the app in Debug mode in XCODE and simulator without any errors. But when I build for Release Mode the build fails with below 2 errors:

  1. 'FirebaseCore/FirebaseCore.h' file not found
  2. Could not build Objective-C module 'Firebase'

I have been trying different solutions available on Stackoverflow and gitHub over last 10 days but know seems to be working, below are the details.

FLUTTER DOCTOR :

Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, v1.17.3, on Mac OS X 10.15.3 19D76, locale en-IN)  [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 11.5) [✓] Android Studio (version 4.0) [✓] Connected device (2 available)  • No issues found! 

POD FILE :

# Uncomment this line to define a global platform for your project platform :ios, '9.0'  # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true'  project 'Runner', {   'Debug' => :debug,   'Profile' => :release,   'Release' => :release, }  def parse_KV_file(file, separator='=')   file_abs_path = File.expand_path(file)   if !File.exists? file_abs_path     return [];   end   generated_key_values = {}   skip_line_start_symbols = ["#", "/"]   File.foreach(file_abs_path) do |line|     next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }     plugin = line.split(pattern=separator)     if plugin.length == 2       podname = plugin[0].strip()       path = plugin[1].strip()       podpath = File.expand_path("#{path}", file_abs_path)       generated_key_values[podname] = podpath     else       puts "Invalid plugin specification: #{line}"     end   end   generated_key_values end  target 'Runner' do   use_frameworks!   use_modular_headers!    # Flutter Pod    copied_flutter_dir = File.join(__dir__, 'Flutter')   copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')   copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')   unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)     # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.     # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.     # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.      generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')     unless File.exist?(generated_xcode_build_settings_path)       raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"     end     generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)     cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];      unless File.exist?(copied_framework_path)       FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)     end     unless File.exist?(copied_podspec_path)       FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)     end   end    # Keep pod path relative so it can be checked into Podfile.lock.   pod 'Flutter', :path => 'Flutter'    # Plugin Pods    # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock   # referring to absolute paths on developers' machines.   system('rm -rf .symlinks')   system('mkdir -p .symlinks/plugins')   plugin_pods = parse_KV_file('../.flutter-plugins')   plugin_pods.each do |name, path|     symlink = File.join('.symlinks', 'plugins', name)     File.symlink(path, symlink)     pod name, :path => File.join(symlink, 'ios')   end end  post_install do |installer|   installer.pods_project.targets.each do |target|     target.build_configurations.each do |config|       config.build_settings['ENABLE_BITCODE'] = 'NO'     end   end end 

AppDelegate.swift (file) :

import UIKit import Flutter import Firebase  @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate {      override func application(     _ application: UIApplication,     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?   ) -> Bool {   FirebaseApp.configure()     GeneratedPluginRegistrant.register(with: self)     return super.application(application, didFinishLaunchingWithOptions: launchOptions)   } } 

Firebase.h file (Path: Pods>Pods>Firebase>CoreOnly>Firebase.h) :

// Copyright 2019 Google // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // //      http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License.  #import <FirebaseCore/FirebaseCore.h>  #if !defined(__has_include)   #error "Firebase.h won't import anything if your compiler doesn't support __has_include. Please \           import the headers individually." #else   #if __has_include(<FirebaseAnalytics/FirebaseAnalytics.h>)     #import <FirebaseAnalytics/FirebaseAnalytics.h>   #endif    #if __has_include(<FirebaseAuth/FirebaseAuth.h>)     #import <FirebaseAuth/FirebaseAuth.h>   #endif    #if __has_include(<FirebaseCrashlytics/FirebaseCrashlytics.h>)     #import <FirebaseCrashlytics/FirebaseCrashlytics.h>   #endif    #if __has_include(<FirebaseDatabase/FirebaseDatabase.h>)     #import <FirebaseDatabase/FirebaseDatabase.h>   #endif    #if __has_include(<FirebaseDynamicLinks/FirebaseDynamicLinks.h>)     #import <FirebaseDynamicLinks/FirebaseDynamicLinks.h>     #if !__has_include(<FirebaseAnalytics/FirebaseAnalytics.h>)       #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING         #warning "FirebaseAnalytics.framework is not included in your target. Please add \ `Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ Firebase Dynamic Links works as intended."       #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING     #endif   #endif    #if __has_include(<FirebaseFirestore/FirebaseFirestore.h>)     #import <FirebaseFirestore/FirebaseFirestore.h>   #endif    #if __has_include(<FirebaseFunctions/FirebaseFunctions.h>)     #import <FirebaseFunctions/FirebaseFunctions.h>   #endif    #if __has_include(<FirebaseInAppMessaging/FirebaseInAppMessaging.h>)     #import <FirebaseInAppMessaging/FirebaseInAppMessaging.h>     #if !__has_include(<FirebaseAnalytics/FirebaseAnalytics.h>)       #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING         #warning "FirebaseAnalytics.framework is not included in your target. Please add \ `Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ Firebase In App Messaging works as intended."       #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING     #endif   #endif    #if __has_include(<FirebaseInstanceID/FirebaseInstanceID.h>)     #import <FirebaseInstanceID/FirebaseInstanceID.h>   #endif    #if __has_include(<FirebaseMessaging/FirebaseMessaging.h>)     #import <FirebaseMessaging/FirebaseMessaging.h>       #if !__has_include(<FirebaseAnalytics/FirebaseAnalytics.h>)       #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING         #warning "FirebaseAnalytics.framework is not included in your target. Please add \ `Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ Firebase Messaging works as intended."       #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING     #endif #endif    #if __has_include(<FirebaseMLCommon/FirebaseMLCommon.h>)     #import <FirebaseMLCommon/FirebaseMLCommon.h>   #endif    #if __has_include(<FirebaseMLModelInterpreter/FirebaseMLModelInterpreter.h>)     #import <FirebaseMLModelInterpreter/FirebaseMLModelInterpreter.h>   #endif    #if __has_include(<FirebaseMLNLLanguageID/FirebaseMLNLLanguageID.h>)     #import <FirebaseMLNLLanguageID/FirebaseMLNLLanguageID.h>   #endif    #if __has_include(<FirebaseMLNLSmartReply/FirebaseMLNLSmartReply.h>)     #import <FirebaseMLNLSmartReply/FirebaseMLNLSmartReply.h>   #endif    #if __has_include(<FirebaseMLNLTranslate/FirebaseMLNLTranslate.h>)     #import <FirebaseMLNLTranslate/FirebaseMLNLTranslate.h>   #endif    #if __has_include(<FirebaseMLNaturalLanguage/FirebaseMLNaturalLanguage.h>)     #import <FirebaseMLNaturalLanguage/FirebaseMLNaturalLanguage.h>   #endif    #if __has_include(<FirebaseMLVision/FirebaseMLVision.h>)     #import <FirebaseMLVision/FirebaseMLVision.h>   #endif    #if __has_include(<FirebaseMLVisionAutoML/FirebaseMLVisionAutoML.h>)     #import <FirebaseMLVisionAutoML/FirebaseMLVisionAutoML.h>   #endif    #if __has_include(<FirebaseMLVisionBarcodeModel/FirebaseMLVisionBarcodeModel.h>)     #import <FirebaseMLVisionBarcodeModel/FirebaseMLVisionBarcodeModel.h>   #endif    #if __has_include(<FirebaseMLVisionFaceModel/FirebaseMLVisionFaceModel.h>)     #import <FirebaseMLVisionFaceModel/FirebaseMLVisionFaceModel.h>   #endif    #if __has_include(<FirebaseMLVisionLabelModel/FirebaseMLVisionLabelModel.h>)     #import <FirebaseMLVisionLabelModel/FirebaseMLVisionLabelModel.h>   #endif    #if __has_include(<FirebaseMLVisionObjectDetection/FirebaseMLVisionObjectDetection.h>)     #import <FirebaseMLVisionObjectDetection/FirebaseMLVisionObjectDetection.h>   #endif    #if __has_include(<FirebaseMLVisionTextModel/FirebaseMLVisionTextModel.h>)     #import <FirebaseMLVisionTextModel/FirebaseMLVisionTextModel.h>   #endif    #if __has_include(<FirebasePerformance/FirebasePerformance.h>)     #import <FirebasePerformance/FirebasePerformance.h>     #if !__has_include(<FirebaseAnalytics/FirebaseAnalytics.h>)       #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING         #warning "FirebaseAnalytics.framework is not included in your target. Please add \ `Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ Firebase Performance works as intended."       #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING     #endif   #endif    #if __has_include(<FirebaseRemoteConfig/FirebaseRemoteConfig.h>)     #import <FirebaseRemoteConfig/FirebaseRemoteConfig.h>     #if !__has_include(<FirebaseAnalytics/FirebaseAnalytics.h>)       #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING         #warning "FirebaseAnalytics.framework is not included in your target. Please add \ `Firebase/Analytics` to your Podfile or add FirebaseAnalytics.framework to your project to ensure \ Firebase Remote Config works as intended."       #endif // #ifndef FIREBASE_ANALYTICS_SUPPRESS_WARNING     #endif   #endif    #if __has_include(<FirebaseStorage/FirebaseStorage.h>)     #import <FirebaseStorage/FirebaseStorage.h>   #endif    #if __has_include(<GoogleMobileAds/GoogleMobileAds.h>)     #import <GoogleMobileAds/GoogleMobileAds.h>   #endif    #if __has_include(<Fabric/Fabric.h>)     #import <Fabric/Fabric.h>   #endif    #if __has_include(<Crashlytics/Crashlytics.h>)     #import <Crashlytics/Crashlytics.h>   #endif  #endif  // defined(__has_include) 

Firebase.h error

Firebase.h error

Could not build Objective-C module 'Firebase'

Could not build Objective-C module 'Firebase'

like image 799
Rohit Avatar asked Jun 19 '20 12:06

Rohit


2 Answers

I was facing same issue, in my case Firebase pods version issue was there. I fixed that though following steps:-

  1. First comment all the pods related with Firebase.
  2. Copy the project path and paste on terminal.
  3. Now type pod install, this will remove all the pods related with Firebase
  4. Now open your podFile and uncomment all the pods related to Firebase.
  5. Open your project. Now clean your project folder and run the app.

Let me know if case if you still face an issue.

. Copy the project path and paste on terminal. Now type pod install, this will remove all the pods related with Firebase. Now open your podFile and uncomment all the pods related to Firebase.

like image 164
Nishant Sharma Avatar answered Sep 21 '22 19:09

Nishant Sharma


This migration guide for react-native-firebase could be useful for your case:

https://rnfirebase.io/migrating-to-v6#removing-v5-from-javascript

I uninstalled version 5 and installed version 6, but it seems there was some extra work to do to get rid of older versions of firebase.

like image 44
Luca Panteghini Avatar answered Sep 18 '22 19:09

Luca Panteghini