invertase/firestore-ios-sdk-frameworks

ld error with BoringSSL-GRPC

Closed this issue · 4 comments

❌  ld: '/Users/[REDACTED]/Library/Developer/Xcode/DerivedData/App-crddnaqtledltaaoywtaqkllohdm/Build/Intermediates.noindex/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/XCFrameworkIntermediates/FirebaseFirestore/Base/BoringSSL-GRPC.framework/BoringSSL-GRPC(BoringSSL-GRPC-dummy.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file '/Users/[REDACTED]/Library/Developer/Xcode/DerivedData/App-crddnaqtledltaaoywtaqkllohdm/Build/Intermediates.noindex/ArchiveIntermediates/App/BuildProductsPath/Release-iphoneos/XCFrameworkIntermediates/FirebaseFirestore/Base/BoringSSL-GRPC.framework/BoringSSL-GRPC' for architecture arm64

Podfile

require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

$RNFirebaseAsStaticFramework = true

platform :ios, '11.0'

target 'App' do
	use_frameworks! :linkage => :static
  config = use_native_modules!

  use_react_native!(
		:path => config["reactNativePath"],
		:hermes_enabled => true
	)

	permissions_path = '../node_modules/react-native-permissions/ios'
	pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications"

	pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '10.1.0'
	pod 'RNFS', :path => '../node_modules/react-native-fs'

	pod 'Firebase', :modular_headers => true
	pod 'FirebaseCoreInternal', :modular_headers => true
	pod 'GoogleUtilities', :modular_headers => true
	pod 'FirebaseCore', :modular_headers => true
	pod 'FirebaseCoreExtension', :modular_headers => true
	pod 'FirebaseAppCheckInterop', :modular_headers => true
	pod 'FirebaseAuthInterop', :modular_headers => true
	pod 'FirebaseMessagingInterop', :modular_headers => true
	pod 'GTMSessionFetcher', :modular_headers => true

	post_install do |installer|
		react_native_post_install(installer)
		__apply_Xcode_12_5_M1_post_install_workaround(installer)


		installer.pods_project.targets.each do |target|
				if target.name == 'RCT-Folly'
					target.build_configurations.each do |config|
						config.build_settings['HEADER_SEARCH_PATHS'] = "$(inherited) ${PODS_ROOT}/fmt/include"
					end
				end
				target.build_configurations.each do |config|
					config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
				end
		end

	end

end

Xcode 14 dropped bitcode support and Firebase dropped bitcode generation in 10.1.0.

Yep - bitcode is dead, long live bitcode: https://stackoverflow.com/questions/72543728/xcode-14-deprecates-bitcode-but-why/73219854#73219854

You can put this in your Podfile (and also make sure in the Xcode UI it is disabled) in order to purge it out programmatically:

should go in your post_install section:

   
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings["ENABLE_BITCODE"] = "NO"
      end
    end

One problem led to the next. I end up just downgrading to 8.15.0 and react-native-firebase to 14.11.1 which was the last version before the one that started requiring changes that caused more issues after fixing more issues.

Thanks for the help though.

You might like: https://github.com/mikehardy/rnfbdemo/blob/main/make-demo.sh

It will generate a fully working project from scratch on current versions, just to see what it's supposed to look like (and the script has descriptive comments explaining why it does the things it does...)