Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RCTAppDelegate.h file not found #36611

Closed
griarman opened this issue Mar 23, 2023 · 61 comments
Closed

RCTAppDelegate.h file not found #36611

griarman opened this issue Mar 23, 2023 · 61 comments

Comments

@griarman
Copy link

Description

I have updated my RN app from 0.70.6 to 0.71.4. The pod install working well. But when I'm trying to run the app it gave me the error saying RCTAppDelegate.h file not found.
But I hadn't problems with android running

React Native Version

0.71.4

Output of npx react-native info

System:
OS: macOS 13.2.1
CPU: (10) arm64 Apple M1 Max
Memory: 732.19 MB / 32.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 16.14.1 - /usr/local/bin/node
Yarn: 1.22.17 - /usr/local/bin/yarn
npm: 8.5.0 - /usr/local/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.12.0 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
Android SDK: Not Found
IDEs:
Android Studio: 2021.2 AI-212.5712.43.2112.8609683
Xcode: 14.2/14C18 - /usr/bin/xcodebuild
Languages:
Java: 11.0.15 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 18.2.0 => 18.2.0
react-native: 0.71.4 => 0.71.4
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found

Steps to reproduce

just need to run run ios

Snack, code example, screenshot, or link to a repository

Sorry it's a private repo, and I can't share the code with you

@griarman
Copy link
Author

I found the issue, it was connected with an m1 chip, on intel, and on a real device it works normally

@RSchneider94
Copy link

I found the issue, it was connected with an m1 chip, on intel, and on a real device it works normally

having the same issue here, did you figure out how to fix with an M1 or just worked with Intel?

@griarman
Copy link
Author

yea I'm not sure what was the real problem, but deleting podfile.lock, pods, build and removing cache helped

@RSchneider94
Copy link

yea I'm not sure what was the real problem, but deleting podfile.lock, pods, build and removing cache helped

thanks for answering! unfortunately here no way to make it work, tried all that and still with problems 😭

@cuteWarmFrog
Copy link

same problem, hope to find help...

@RSchneider94
Copy link

I give a try again following these steps again and using Xcode that build was still failing, but when trying to run directly the react-native run-ios command it has built successfully and worked.

@sheriffyusuf
Copy link

sheriffyusuf commented Apr 1, 2023

This solution on stackoverflow helped me solve this issue. https://stackoverflow.com/questions/71933392/react-native-ios-undefined-symbols-for-architecture-x86-64

@aaron-tpg
Copy link

I was getting this error. I had created a new target, and that target wasn't in my Podfile. It disappeared after adding

target 'MyNewTarget' do
  inherit! :complete
end

within the larger target.

@developaul-k
Copy link

same issue 🥲

@yshakouri
Copy link

Same issue on M1
"react": "18.2.0",
"react-native": "0.71.7"

@ucheNkadiCode
Copy link

I'm getting this issue as well

@callmesilva
Copy link

I got it fixed by following a console warning when building with scratch configuration on my Podfile,
Instead of adding
use_frameworks! :linkage => :static (as suggested on react native firebase package docs)
I added
use_modular_headers!
just above the target initialization line,

Hope this works for you too

@ucheNkadiCode
Copy link

I was able to fixed this issue with by making sure use_frameworks! :linkage => :static was above use_react-native

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, min_ios_version_supported
deployment_target = '13.0'
prepare_react_native_project!
# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
#   dependencies: {
#     ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

target 'AppName' do
  config = use_native_modules!

  # Flags change depending on the env values.
  flags = get_default_flags()

  # This has to come before use_react_native or you get AppDelegate or RCTEventEmitter not found
  use_frameworks! :linkage => :static
  
  use_react_native!(
    :path => config[:reactNativePath],
    :hermes_enabled => flags[:hermes_enabled],
    :fabric_enabled => flags[:fabric_enabled],
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )


end

I added
use_modular_headers!
just above the target initialization line,

@callmesilva Is this use_modular_headers safe to use? Could it be away to get around the fact that use_frameworks is not supported on the new architecture?

@callmesilva
Copy link

I was able to fixed this issue with by making sure use_frameworks! :linkage => :static was above use_react-native

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, min_ios_version_supported
deployment_target = '13.0'
prepare_react_native_project!
# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
#   dependencies: {
#     ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

target 'AppName' do
  config = use_native_modules!

  # Flags change depending on the env values.
  flags = get_default_flags()

  # This has to come before use_react_native or you get AppDelegate or RCTEventEmitter not found
  use_frameworks! :linkage => :static
  
  use_react_native!(
    :path => config[:reactNativePath],
    :hermes_enabled => flags[:hermes_enabled],
    :fabric_enabled => flags[:fabric_enabled],
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )


end

I added
use_modular_headers!
just above the target initialization line,

@callmesilva Is this use_modular_headers safe to use? Could it be away to get around the fact that use_frameworks is not supported on the new architecture?

I tried the use_frameworks! :linkage => :static way but it was causing my app to miss the RCTAppDelegate.h file. Perhaps it is supported because it allowed me to install Firebase related pods, but somehow it was messing with the actual React Native package

@keshav-raj
Copy link

keshav-raj commented May 15, 2023

Facing the same issue, Any Workaround is there yet?
upgraded from 0.63 to 0.71.7, After that this issue is happening

@Danushka50
Copy link

Danushka50 commented May 18, 2023

same issue 🥲
upgraded from 0.63.5 to 0.71.7,


Update : Found this for resolve the issue.


But facing another issue in "rn-fetch-blob": "^0.12.0",

ios/Pods/Headers/Public/React-Core/React/RCTBridgeModule.h:12:9 'React/RCTJSThread.h' file not found
This happed when I upgrade react native version from 0.63.5 to 0.71.7.

Screenshot 2023-05-19 at 12 56 16 PM

issues occurred in the following files

  • node_modules/rn-fetch-blob/ios/RNFetchBlobReqBuilder.m:11:
  • node_modules/rn-fetch-blob/ios/RNFetchBlobNetwork.h:14:
  • node_modules/rn-fetch-blob/ios/RNFetchBlobFS.h:12:
  • node_modules/rn-fetch-blob/ios/RNFetchBlob/RNFetchBlob.h:17:

Is there any additional configurations that need to do or did I do any incorrect configuration.
Any help on this.


Update : Found this for resolve the issue

npm install
remove pod
remove pod.lock
reinstall the arch -x86_64 pod install --repo-update

Works for me.


@Prathameshlabde
Copy link

I am still getting the same error can anyone please suggest? my react-native version is 0.71.7

@thanksyouall
Copy link

same issue!

@riyan10dec
Copy link

riyan10dec commented Jun 15, 2023

Me too, same issue!
Although, I see React-RCTAppDelegate on Development Pods

Screenshot 2023-06-15 at 10 23 18

But still not found.
Already do this #35818 (comment), but still same issue.

I'm using https://github.com/invertase/react-native-firebase

    "@react-native-firebase/analytics": "^18.0.0",
    "@react-native-firebase/app": "^18.0.0",
    "@react-native-firebase/crashlytics": "^18.0.0",
    "@react-native-firebase/database": "^18.0.0",
    "@react-native-firebase/messaging": "^18.0.0",
    "@react-native-firebase/perf": "^18.0.0",

and my RN version is 0.71.8, i'm using M1 chip

@cipolleschi
Copy link
Contributor

@keshav-raj @Prathameshlabde @riyan10dec

Please, try the following steps:

  • Update to the most recent version of React Native (0.71.11).
  • Run yarn install in the root folder of your app
  • In the ios folder, run bundle install. This ensure that you have the right versions of Cocoapods and should make sure that cocopods works with both Intel and M1 chips
  • Reinstall your pods:
    • If you are using firebase, use USE_FRAMEWORKS=static bundle exec pod install
    • If you are not using firebase, use bundle exec pod install
  • Open your <app>.xcworkspace
  • Try to build and run the app

I hope these steps may help solving your issues.

@riyan10dec
Copy link

riyan10dec commented Jun 16, 2023

Hi @cipolleschi ,
thanks for your response.

after I try your steps, when I build on XCode, I'm getting this error:
Command PhaseScriptExecution failed with a nonzero exit code
Screenshot 2023-06-16 at 18 13 48

This is my Podfile, in case you need to see

source 'https://cdn.cocoapods.org/'

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, min_ios_version_supported
prepare_react_native_project!
# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
#   dependencies: {
#     ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end



target 'Influence' do
  config = use_native_modules!
  # permissions_path = '../node_modules/react-native-permissions/ios'
  # pod 'Permission-AppTrackingTransparency', :path => "#{permissions_path}/AppTrackingTransparency"
  # pod 'Permission-MediaLibrary', :path => "#{permissions_path}/MediaLibrary"
  # pod 'Permission-PhotoLibrary', :path => "#{permissions_path}/PhotoLibrary"
  # pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications"


  # Flags change depending on the env values.
  flags = get_default_flags()

  use_frameworks! :linkage => :static
  # $RNFirebaseAsStaticFramework = true
  use_react_native!(
    :path => config[:reactNativePath],
    :hermes_enabled => flags[:hermes_enabled],
    :fabric_enabled => flags[:fabric_enabled],
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
    # Hermes is now enabled by default. Disable by setting this flag to false.
    # Upcoming versions of React Native may rely on get_default_flags(), but
    # we make it explicit here to aid in the React Native upgrade process.
    # :hermes_enabled => false,
    # :fabric_enabled => flags[:fabric_enabled],
    # Enables Flipper.
    #
    # Note that if you have use_frameworks! enabled, Flipper will not work and
    # you should disable the next line.
    # :flipper_configuration => flipper_config,
  )

  target 'InfluenceTests' do
    inherit! :complete
    # Pods for testing
  end


  post_install do |installer|
    react_native_post_install(
      installer,
      # Set `mac_catalyst_enabled` to `true` in order to apply patches
      # necessary for Mac Catalyst builds
      :mac_catalyst_enabled => false
    )
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
  end

#   # Fix Xcode 14 warnings like:
#   # warning: Run script build phase '[CP] Copy XCFrameworks' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'ATargetNameHere' from project 'YourProjectName')
#   # Ref.: https://github.com/CocoaPods/CocoaPods/issues/11444
#   post_integrate do |installer|
#     main_project = installer.aggregate_targets[0].user_project
#     pods_project = installer.pods_project
#     targets = main_project.targets + pods_project.targets
#     targets.each do |target|
#       run_script_build_phases = target.build_phases.filter { |phase| phase.is_a?(Xcodeproj::Project::Object::PBXShellScriptBuildPhase) }
#       cocoapods_run_script_build_phases = run_script_build_phases.filter { |phase| phase.name.start_with?("[CP]") }
#       cocoapods_run_script_build_phases.each do |run_script|
#         next unless (run_script.input_paths || []).empty? && (run_script.output_paths || []).empty?
#         run_script.always_out_of_date = "1"
#       end
#     end
#     main_project.save
#     pods_project.save
#   end
end

Update 2

I found that the error above because of the

line 3: $(CURRENT_PROJECT_VERSION) + 1: syntax error: operand expected (error token is "$(CURRENT_PROJECT_VERSION) + 1")
Command PhaseScriptExecution failed with a nonzero exit code

I found the log on
/Users/<user>/Library/Developer/Xcode/DerivedData/<project>/Logs/Build/blabla.xcactivitylog

Hope my solution help someone

@cipolleschi
Copy link
Contributor

Hi @riyan10dec, just to understand, the error:

line 3: $(CURRENT_PROJECT_VERSION) + 1: syntax error: operand expected (error token is "$(CURRENT_PROJECT_VERSION) + 1")
Command PhaseScriptExecution failed with a nonzero exit code

Is local to your configuration, right? I have never seen the $(CURRENT_PROJECT_VERSION) + 1 anywhere in the React Native codebase...

@riyan10dec
Copy link

@cipolleschi
Maybe from this lib (I'm using this lib to auto increment the build number, everytime i build APK and IPA file):
https://github.com/stovmascript/react-native-version

My solution is to revert CURRENT_PROJECT_VERSION and MARKETING_VERSION on Info.plist to hardcoded version number
Screenshot 2023-06-19 at 13 40 05

@sabeti
Copy link

sabeti commented Jul 5, 2023

For those who still have this issue, first make sure you opened "projectName".xcworkspace and not "projectName".xcodeproj in XCode.

@chrisluo
Copy link

chrisluo commented Jul 9, 2023

If after trying all of the above and you are able to run on a real device, but not the simulator; try checking that the project, targets and pods build settings Excluded Architectures - Any iOS Simulator SDK are set to i386.
My project build settings had it set to i386, but targets build settings had it set to arm64. I changed it to i386 for all and was able to run on a simulator.

Also you might have this in your Podfile if you are upgrading from an older react native project. This sets it back to arm64 after each pod install. Remove this as well.

installer.pods_project.build_configurations.each do |config|
  config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end

@tranminhnhat1005
Copy link

tranminhnhat1005 commented Aug 13, 2023

If you are using React Native Config, please check the Podfile.

You must define the target inside the abstract_target
ex:

abstract_target 'YourProjectNameCommonPods' do
  config = use_native_modules!
  ...
  
  target 'YourTargetName' do
  end
  
  ...
  post_install do |installer|
  ...

@KhanhtqProteans
Copy link

#36611 (comment) save my time

@nandgreat
Copy link

target 'MyNewTarget' do
inherit! :complete
end

Thank you so much for this... It worked perfectly

@jackfiallos
Copy link

Currently, I'm facing this too, and I have compared a new project vs. https://github.com/mikehardy/rnfbdemo/tree/main vs. my project.

I'm noticing something that may cause the issue, but not sure what this means, when checking the section "General" -> "Frameworks, Libraries, and Embedded Content", normally, it uses libPods-[project_name].a but mine has Pods_[project_name].framework.

I was wondering, what do you have there and what's the difference, how does this was created?

I've tried using RN 0.72.3 and 0.72.4, not sure about previous releases

@cipolleschi
Copy link
Contributor

Hi @jackfiallos!
The reason why you have .framework instead of a .a is because you are configuring your project to run with use_frameworks! rather than static libraries.
So, Cocoapods creates frameworks instead of libraries (.a) and therefore the linking of external libraries is done using those.

@jackfiallos
Copy link

Thanks for clarifying @cipolleschi, that's what I thought ..

In the end, I could manage the error, tried different things and finally, it's working again, I believe my error was in the Podfile because it wasn't updated correctly. Also, I had a mix of different setups from other libraries that weren't updated so had configs from different versions. I think one of the misconfigurations was causing the issue with the project compilation.

I'm not sure what the issue was, but I'll suggest anybody having this problem, to check all your custom libraries and see if the configuration still applies to your current RN version.

Something to add is, the most important thing to verify is your Gemfile.lock file that effectively has:

DEPENDENCIES
  cocoapods (~> 1.12)

and before testing, remove from your root project, /vendor folder Gemfile.lock file and from ios folder, /Pods and Podfile.lock.

execute the bundle install and the pod install --repo-update (arch -x86_64 pod install --repo-update for M1/2 processors).

@feedthedevil
Copy link

same issue. upgrading from 0.66.5 to 0.72.4

@cipolleschi
Copy link
Contributor

@feedthedevil it is likely that it depends on your Podfile or on some 3rd party dependency.
Have a look at the conversation, there are various fixes, depending on different podfile setups and libraries involved.
As a first step, try to have your Podfile as close as possible to this one

@feedthedevil
Copy link

feedthedevil commented Sep 15, 2023

@cipolleschi thank you for reply. I was upgrading by changing files finding differences via upgrade-helper and somehow in my AppDelegate.h i was importing RCTAppDelegate.h as React/RCTAppDelegate.h ;) Leaving just RCTAppDelegate.h helped to resolve the issue)

@cimpianRadu
Copy link

I was able to fix this by deleting ios/build folder and reinstalling the dependencies. But I am not sure what caused this, though 😅

@Colemartindale
Copy link

I am experiencing the same issue, RN 0.70.6 --> 0.72.5
Apple Silicon M1
I have tried every recommendation in this thread with no luck.
Any suggestions would be greatly appreciated
here is my podfile:

# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
  'require.resolve(
    "react-native/scripts/react_native_pods.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip

platform :ios, min_ios_version_supported
prepare_react_native_project!

# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
#   dependencies: {
#     ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled

linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

target 'WolffMobile' do
  config = use_native_modules!

  # Flags change depending on the env values.cd ..
  flags = get_default_flags()

  use_react_native!(
    :path => config[:reactNativePath],
    # Hermes is now enabled by default. Disable by setting this flag to false.
    :hermes_enabled => flags[:hermes_enabled],
    :fabric_enabled => flags[:fabric_enabled],
    # Enables Flipper.
    #
    # Note that if you have use_frameworks! enabled, Flipper will not work and
    # you should disable the next line.
    :flipper_configuration => flipper_config,
    # An absolute path to your application root.
    :app_path => "#{Pod::Config.instance.installation_root}/.."
  )
  
  target 'WolffMobileTests' do
    inherit! :complete
    # Pods for testing
  end
  target 'WolffMobileDev' do
    inherit! :complete
  end
  target 'WolffMobileStg' do
    inherit! :complete
  end

  post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.4'
          config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = "arm64"
        end
    end
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    react_native_post_install(
      installer,
      config[:reactNativePath],
      # Set `mac_catalyst_enabled` to `true` in order to apply patches
      # necessary for Mac Catalyst builds
      :mac_catalyst_enabled => false
    )
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
  end

end

@thornec
Copy link

thornec commented Oct 13, 2023

I am experiencing same issues after upgrading to rn 0.72.5

$RNFirebaseAsStaticFramework = true

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

platform :ios, '13.0'
deployment_target = '13.0'

require 'json'
podfile_properties = JSON.parse(File.read('./Podfile.properties.json')) rescue {}

require Pod::Executable.execute_command('node', ['-p',
  'require.resolve(
    "react-native/scripts/react_native_pods.rb",
    {paths: [process.argv[1]]},
  )', __dir__]).strip


flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled

linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
  Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
  use_frameworks! :linkage => linkage.to_sym
end

target 'prmassist' do
  use_expo_modules!
  config = use_native_modules!

  flags = get_default_flags()

  use_frameworks! :linkage => :static

  use_react_native!(
    :path => config[:reactNativePath],

    :hermes_enabled => flags[:hermes_enabled],
    :fabric_enabled => flags[:fabric_enabled],

    :app_path => "#{Pod::Config.instance.installation_root}/.."

  )

  permissions_path = '../node_modules/react-native-permissions/ios'

  pod 'RNCAsyncStorage', :path => '../node_modules/@react-native-async-storage/async-storage'
  pod 'BVLinearGradient', :path => '../node_modules/react-native-linear-gradient'
  pod 'Firebase/Analytics'
  pod 'Firebase/Messaging'
  pod 'lottie-react-native', :path => '../node_modules/lottie-react-native'
  pod 'lottie-ios', :path => '../node_modules/lottie-ios'
  pod 'RNSVG', :path => '../node_modules/react-native-svg'
  pod 'RCT-Folly', :podspec => '../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec'
  pod 'Permission-AppTrackingTransparency', :path => "#{permissions_path}/AppTrackingTransparency"
  pod 'Permission-BluetoothPeripheral', :path => "#{permissions_path}/BluetoothPeripheral"
  pod 'Permission-LocationAlways', :path => "#{permissions_path}/LocationAlways"
  pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse"

  post_install do |installer|
    
    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false
    )
    __apply_Xcode_12_5_M1_post_install_workaround(installer)

    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', '_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION']
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
      end
    end

    installer.pods_project.targets.each do |target|
      if (target.name&.eql?('FBReactNativeSpec'))
        target.build_phases.each do |build_phase|
          if (build_phase.respond_to?(:name) && build_phase.name.eql?('[CP-User] Generate Specs'))
            target.build_phases.move(build_phase, 0)
          end
        end
      end
    end
  end

  post_integrate do |installer|
    begin
      expo_patch_react_imports!(installer)
    rescue => e
      Pod::UI.warn e
    end
  end

end

@cipolleschi
Copy link
Contributor

@thornec is this an Expo app? If yes, please open the issue to expo.

For all the others, please redirect the questions to #38283 which is the same root cause of missing search patch. I'll try to address this issue next week, with high priority.

@thornec
Copy link

thornec commented Oct 16, 2023

Not an expo app, just have some expo packages installed. should I refer to #38283 for a fix?

@cipolleschi
Copy link
Contributor

Yes, the root cause is probably the same: one dependency that is not perfectly setup to work with use_frameworks! which is required by Firebase (or by another dependency).
I'm going to systematically test the most common dependencies to look for failures. I already found one with react-native-gesture-handler (and opened a PR here: software-mansion/react-native-gesture-handler#2635)

@thornec
Copy link

thornec commented Oct 17, 2023

hi is there any update on a fix for this?

@cipolleschi
Copy link
Contributor

It will take much more than a day to fix this. Several libraries would have to release a new version.
The best way to help out here is to create a reproducer using the official reproducer with all the dependencies you need, so I can try to make it build, highlight which dependencies needs to be updated, open PRs and fix what needed to be fixed in React Native.

Asking ETAs on update will not help us moving faster.

@Alwaz
Copy link

Alwaz commented Oct 31, 2023

If after trying all of the above and you are able to run on a real device, but not the simulator; try checking that the project, targets and pods build settings Excluded Architectures - Any iOS Simulator SDK are set to i386. My project build settings had it set to i386, but targets build settings had it set to arm64. I changed it to i386 for all and was able to run on a simulator.

Also you might have this in your Podfile if you are upgrading from an older react native project. This sets it back to arm64 after each pod install. Remove this as well.

installer.pods_project.build_configurations.each do |config|
  config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end

This solution solved this AppDelegate issue but caused another issue with react-native-zego-zim

The following build commands failed:
	Ld /Users/username/Library/Developer/Xcode/DerivedData/Healthy-ajctxzurqyzyjzdpvbtoafkxnpux/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-zego-zim.build/Objects-normal/x86_64/Binary/react_native_zego_zim normal x86_64 (in target 'react-native-zego-zim' from project 'Pods')
(1 failure)

@cipolleschi
Copy link
Contributor

The following build commands failed:
Ld /Users/username/Library/Developer/Xcode/DerivedData/Healthy-ajctxzurqyzyjzdpvbtoafkxnpux/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-zego-zim.build/Objects-normal/x86_64/Binary/react_native_zego_zim normal x86_64 (in target 'react-native-zego-zim' from project 'Pods')
(1 failure)

Sorry, but this message contains no specific error, so I can't help here.

@devethan
Copy link

I was getting this error. I had created a new target, and that target wasn't in my Podfile. It disappeared after adding

target 'MyNewTarget' do
  inherit! :complete
end

within the larger target.

In my case, this is works. But I don't have idea why it should be added in Podfile. Before updating Xcode version, there was no script for the new target

@konradjurk
Copy link

I resolved it by opening the .xcworkspace file instead of the .xcodeproj. Then, the build was successful.

@DeveloperMCD
Copy link

DeveloperMCD commented Feb 6, 2024

I'm getting the same error -- and I have a brand-new project with only TWO libraries: firebase and Vision Camera. Latest versions all around; this is a test app I've spent a while putting together.

React Native 0.73.4
Vision Camera 3.8.2
React Native Firebase Storage 18.8.0

@ildaneta
Copy link

In my case the same error was caused by cocoapods when I updated the version to 1.15.2 so, I installed the version 1.14.2, and I ran:

cd ios
npx po-install

and my problem was solved.

@cipolleschi
Copy link
Contributor

@DeveloperMCD please make sure of:

  1. Run USE_FRAMEWORKS=static bundle exec pod install to install the pods. Firebase requires that specific flag
  2. Open the xcworkspace file, not the xcodeproj file.

@ximomompo
Copy link

In my case, after testing all the solutions of this thread, it was uninstalling Xcode and reinstall it. I lost one day of work with this issue.

@pavankvch
Copy link

pavankvch commented Feb 23, 2024

I Found Solution

This problem happens when xcode-select developer directory was pointing to /Library/Developer/CommandLineTools when a full regular Xcode was required (happens when CommandLineTools are installed after Xcode)

Solution:

  • Install Xcode (get it from https://appstore.com/mac/apple/xcode) if you don't have it yet.
  • Accept the Terms and Conditions.
  • Ensure Xcode app is in the /Applications directory (NOT /Users/{user}/Applications).
  • Point xcode-select to the Xcode app Developer directory using the following command:
  • sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

Note: Make sure your Xcode app path is correct.

Xcode: /Applications/Xcode.app/Contents/Developer
Xcode-beta: /Applications/Xcode-beta.app/Contents/Developer

U can use command again npm install in ur project & Again pod install

Refer link StackOverFlow : https://stackoverflow.com/questions/17980759/xcode-select-active-developer-directory-error

@MaskoMasko
Copy link

I found my solution here:
https://github.com/CocoaPods/CocoaPods/issues/9239#issuecomment-557579931
Hope it helps

@aneesh-dasari
Copy link

Getting this issue
The following build commands failed:
CompileC /Users/aneesh/Library/Developer/Xcode/DerivedData/halofi_rn_sb-eovebeieudgfuxakvbnvilzbtryl/Build/Intermediates.noindex/halofi_rn_sb.build/Debug-iphonesimulator/halofi_rn_sb.build/Objects-normal/x86_64/halofi_rn_sb_vers.o /Users/aneesh/Library/Developer/Xcode/DerivedData/halofi_rn_sb-eovebeieudgfuxakvbnvilzbtryl/Build/Intermediates.noindex/halofi_rn_sb.build/Debug-iphonesimulator/halofi_rn_sb.build/DerivedSources/halofi_rn_sb_vers.c normal x86_64 c com.apple.compilers.llvm.clang.1_0.compiler (in target 'halofi_rn_sb' from project 'halofi_rn_sb')
(1 failure)

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

@cipolleschi
Copy link
Contributor

@aneesh-dasari that's not a valuable error message. It only tells us which command failed, but not why.
Can you provide a reproducer using this template?

@rizbud
Copy link

rizbud commented Jun 12, 2024

@DeveloperMCD please make sure of:

  1. Run USE_FRAMEWORKS=static bundle exec pod install to install the pods. Firebase requires that specific flag
  2. Open the xcworkspace file, not the xcodeproj file.

Thanks. Work in my case

@itsramiel
Copy link

If after trying all of the above and you are able to run on a real device, but not the simulator; try checking that the project, targets and pods build settings Excluded Architectures - Any iOS Simulator SDK are set to i386. My project build settings had it set to i386, but targets build settings had it set to arm64. I changed it to i386 for all and was able to run on a simulator.

Also you might have this in your Podfile if you are upgrading from an older react native project. This sets it back to arm64 after each pod install. Remove this as well.

installer.pods_project.build_configurations.each do |config|
  config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end

Yes had this left and that was causing it for me. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests