facebook / react-native

A framework for building native applications using React
https://reactnative.dev
MIT License
118.09k stars 24.19k forks source link

0.72.1 -> 'React/RCTAppSetupUtils.h' file not found #38193

Closed asjustis closed 2 weeks ago

asjustis commented 1 year ago

New Version

0.72.1

Old Version

0.70.4

Build Target(s)

iOS 16.5 for both device and simulator

Output of react-native info

System: OS: macOS 13.4.1 CPU: (10) arm64 Apple M2 Pro Memory: 1.64 GB / 32.00 GB Shell: version: "5.9" path: /bin/zsh Binaries: Node: version: 20.3.1 path: /opt/homebrew/bin/node Yarn: version: 1.22.19 path: /opt/homebrew/bin/yarn npm: version: 9.6.7 path: /opt/homebrew/bin/npm Watchman: version: 2023.07.03.00 path: /opt/homebrew/bin/watchman Managers: CocoaPods: version: 1.12.1 path: /opt/homebrew/bin/pod SDKs: iOS SDK: Platforms:

Issue and Reproduction Steps

Trying to run the project on a new Macbook Pro M2. Project fails both with yarn run ios and running 'play' straight from XCode.

Got into it after trying to resolve another issue (in the link) using this solution: https://github.com/facebook/react-native/issues/34106#issuecomment-1524819646

Any help is appreciated!

Screenshot 2023-07-05 at 13 24 56
abdi4 commented 1 year ago

+1

canderson402 commented 1 year ago

I was running into this same issue after upgrading, did you use the upgrade helper? I did, but missed some needed changes. I ended up going through the list again copying each and every file to upgrade properly, here are the versions I went from and to. Upgrade Link

It appears that RCTAppSetupUtils is no longer used in this context, my AppDelegate.mm has no reference to it now.

abdi4 commented 1 year ago

I double-checked and can confirm I copied everything correctly. Getting rid of that line leads to the other errors. That import is used by Flipper and after stripping it out everything works fine. I'm gona revisit my flipper config might've missed something there

helottosornas commented 1 year ago

I followed the steps in this comment, which solved the issue for me: https://github.com/facebook/react-native/issues/37102#issuecomment-1534841673. Seems like some changes in React-Core aren't being properly ported over when upgrading react-native.

I am now unable to build due to RCTViewComponentView.h not being found instead, but that's another issue (I hope).

ImReyon commented 1 year ago

+1 having same error after upgrading to 0.72.1

MensurRasic commented 1 year ago

Same issue on my side, upgraded from 0.69.1 to 0.72.1 and I am facing the same error : 'React/RCTAppSetupUtils.h' file not found

Using Mac M1

tranductanz commented 1 year ago

+1, same problem when upgrade from 0.70.7 -> 0.72.1, hope this can be fixed :(

GaetanFauconnier85 commented 1 year ago

Same error when upgrading from 0.70.6 to 0.72.1

asjustis commented 1 year ago

I was running into this same issue after upgrading, did you use the upgrade helper? I did, but missed some needed changes. I ended up going through the list again copying each and every file to upgrade properly, here are the versions I went from and to. Upgrade Link

It appears that RCTAppSetupUtils is no longer used in this context, my AppDelegate.mm has no reference to it now.

Definitely an idea! I used only npx react-native upgrade for upgrading, but in the Upgrade Helper I can see the AppDelegate.mm indeed was not updated, so maybe the upgrade process silently failed somewhere.

Currently, I just downgraded the RN version and tried to solve the initial problem in a different way, as going through every change and applying it manually seems too much work at this point. Hopefully, we'll get a fix at some point!

nishivinodbhatt commented 1 year ago

+1 Getting the same error after upgrading to 0.72.2

nishivinodbhatt commented 1 year ago

I was running into this same issue after upgrading, did you use the upgrade helper? I did, but missed some needed changes. I ended up going through the list again copying each and every file to upgrade properly, here are the versions I went from and to. Upgrade Link It appears that RCTAppSetupUtils is no longer used in this context, my AppDelegate.mm has no reference to it now.

Definitely an idea! I used only npx react-native upgrade for upgrading, but in the Upgrade Helper I can see the AppDelegate.mm indeed was not updated, so maybe the upgrade process silently failed somewhere.

Currently, I just downgraded the RN version and tried to solve the initial problem in a different way, as going through every change and applying it manually seems too much work at this point. Hopefully, we'll get a fix at some point!

I would like to know which version did you downgrade it to? and is it working for you now. Thanks :)

humbertocg commented 1 year ago

facing the same issue.


Update

I fixed by running this commands and following the comments on other issues.

I ran this on project root and ios folder: bundle install bundle exec pod repo update delete the ios/Podfile.lock bundle exec pod install

Then https://github.com/facebook/react-native/issues/36690#issuecomment-1493765601

Finally https://github.com/software-mansion/react-native-reanimated/issues/3823#issuecomment-1346687536

I got a compilation success, but I'm still facing other error. At least it is compiling

nishivinodbhatt commented 1 year ago

software-mansion/react-native-reanimated#3823 (comment)

Thanks. But sadly did not work for me. Getting the same error

humbertocg commented 1 year ago

software-mansion/react-native-reanimated#3823 (comment)

Thanks. But sadly did not work for me. Getting the same error

try to run the xcode project and compile it to check what errors are happening in the compilation.

I did like this and google each error to see a possible solution.

gvete commented 1 year ago

Same issue after upgrading to 0.72.2. Using Xcode 15 beta, IOS 17.0

asjustis commented 1 year ago

I was running into this same issue after upgrading, did you use the upgrade helper? I did, but missed some needed changes. I ended up going through the list again copying each and every file to upgrade properly, here are the versions I went from and to. Upgrade Link It appears that RCTAppSetupUtils is no longer used in this context, my AppDelegate.mm has no reference to it now.

Definitely an idea! I used only npx react-native upgrade for upgrading, but in the Upgrade Helper I can see the AppDelegate.mm indeed was not updated, so maybe the upgrade process silently failed somewhere. Currently, I just downgraded the RN version and tried to solve the initial problem in a different way, as going through every change and applying it manually seems too much work at this point. Hopefully, we'll get a fix at some point!

I would like to know which version did you downgrade it to? and is it working for you now. Thanks :)

@nishivinodbhatt, I simply reverted to a previous commit in my github project before the update, so it was 0.70.4, also removed node_modules, and in ios dir: Pods/, Podfile.lock and build/. Reinstalled all with yarn install and pod install.

It's working now OK, though I had to first sort out in my ticket mentioned unsupported 12.0 os version issue without upgrading

Hope this helps!

mciechanowicz commented 1 year ago

I also have this problem in version 0.72.3. Does anyone have a solution besides downgrading?

gvete commented 1 year ago

@mciechanowicz you don't need to downgrade.. just follow the upgrade guide : React Native Upgrade Guide

asjustis commented 1 year ago

@mciechanowicz you don't need to downgrade.. just follow the upgrade guide : React Native Upgrade Guide

@gvete but does that mean applying each code change manually? I personally am quite reluctant to do that as it is time-consuming, and feels like hardcoding a quick fix for a broken update.

canderson402 commented 1 year ago

@mciechanowicz you don't need to downgrade.. just follow the upgrade guide : React Native Upgrade Guide

@gvete but does that mean applying each code change manually? I personally am quite reluctant to do that as it is time-consuming, and feels like hardcoding a quick fix for a broken update.

It only takes like 30-60 minutes if that, much shorter if you are not that behind on versions, and the changes are required for future upgrades anyways so unless you never want to upgrade you will have to do it eventually.

oduonye1992 commented 1 year ago

Use instead

import

esvanegas commented 1 year ago

Use instead

import

This solution doesn't work, because a lot of dependencies couldn't be found on RCTAppSetupUtils.h but React/RCTAppSetupUtils.h, Did you do an additional step to get this work?

mxnuchim commented 1 year ago

+1, same problem when upgrade from 0.70.1 -> 0.72.3, Did anyone figure this out?

Dassine commented 1 year ago

Same here. upgraded from 0.70.6 -> 0.72.3. Any solution?

murliswamig commented 1 year ago

Same here. upgraded from 0.70.6 -> 0.72.3. Any solution?

JunboJ commented 1 year ago

I firstly ran the npx react-native upgrade, it will automatically apply as many changes as it can. Then I applied the changes shown in upgrade helper for AppDelegate.mm and AppDelegate.h file. I can see the #import <React/RCTAppSetupUtils.h> line here has been removed along with many other things.

image

Upgrade helper - https://react-native-community.github.io/upgrade-helper/?from=0.70.6&to=0.72.3 (Remember to change the from/to version)

serhiy-z-israelit-pro commented 1 year ago

Use instead

import

In my case this solved the issue.

To add more details, the project is setup with wix/react-native-navigation. It requires in AppDelegate -> didFinishLaunchingWithOptions to return YES; instead of return [super application:application didFinishLaunchingWithOptions:launchOptions]; When I tried to switch back to return [super application:application didFinishLaunchingWithOptions:launchOptions]; Flipper did see the app without #import <RCTAppSetupUtils.h>, but the app was broken.

MaysharaF commented 1 year ago

Same problem here! ;-; upgraded from 0.70.5 -> 0.72.3. Any solution?

MashoodAli-Official commented 1 year ago

I have also facing the same problem since i have updated(0.70 to 0.72) the project and transfer my project from Intel Mac to Macbook Air M1.

Screenshot
humbertocg commented 1 year ago

well, Finally I complete a succesfully upgrade.

the "merging" is not working.

  1. run npx react-native upgrade on your project. (As I mentioned. The merging is not working, so this step right now could be optional. I did just not to lose extra changes)
  2. open helper (verify your previos react native version ) https://react-native-community.github.io/upgrade-helper/?from=0.70.6&to=0.72.4 and change it on dropdown for your "current version"
  3. on "What's your app name?" change into app name (important).
  4. click on "Show me how to upgrade!"
  5. copy and paste or delete acording to the differencies on every file.
  6. Be careful and search on "seach tool" in visual studio code for "RnDiffApp" and change it for your app name. The tool some times did not change for your app name.
  7. On package.json change by hand if you have already added packages for your dependencies (axios, pickers, etc.) or copy and paste the info from helper and reinstall your packages (npm install PACKAGE_NAME for 0.72.4 is not working (no for me), use yarn add PACKAGE_NAME instead)
  8. delete package.lock.json file and node_modules folder.
  9. run npm install
  10. navigate to ios folder and run pod install
  11. finally, run for android and ios to check if everything is ok.

Hope React native team, fix this one, is not clear how to update and the instructions are assuming that you know some steps.

chachaxw commented 1 year ago

I firstly ran the npx react-native upgrade, it will automatically apply as many changes as it can. Then I applied the changes shown in upgrade helper for AppDelegate.mm and AppDelegate.h file. I can see the #import <React/RCTAppSetupUtils.h> line here has been removed along with many other things. image

Upgrade helper - https://react-native-community.github.io/upgrade-helper/?from=0.70.6&to=0.72.3 (Remember to change the from/to version)

This way worked for me, very nice.

alienbalcorp commented 1 year ago

Use instead

import

It helped me! Thanks a lot. 💪

bszyman commented 11 months ago

I firstly ran the npx react-native upgrade, it will automatically apply as many changes as it can. Then I applied the changes shown in upgrade helper for AppDelegate.mm and AppDelegate.h file. I can see the #import <React/RCTAppSetupUtils.h> line here has been removed along with many other things. image

Upgrade helper - https://react-native-community.github.io/upgrade-helper/?from=0.70.6&to=0.72.3 (Remember to change the from/to version)

Chiming in that this worked for me too.

Apparently when we had done earlier upgrades from 0.69.7, this was overlooked. Cleaning this cruft out fixed the issue.

Get the whole list/diff here: https://react-native-community.github.io/upgrade-helper/?from=0.69.7&to=0.72.4#RnDiffApp-ios-RnDiffApp-AppDelegate.mm

Darrick-Oliver commented 11 months ago

What worked for me was deleting the ios/ folder that was generated with the old RN version, and re-running npm run ios. This made the correct modifications to the AppDelegate.mm and other files mentioned above.

dre-on commented 11 months ago

What worked for me was deleting the ios/ folder that was generated with the old RN version, and re-running npm run ios. This made the correct modifications to the AppDelegate.mm and other files mentioned above.

Thank you, kind sir.

hassanharoon321 commented 11 months ago

no solution still yet

MendyK commented 11 months ago

If you are using expo, delete your ios/ folder and run npx expo run:ios

CC @hassanharoon321

hassanharoon321 commented 11 months ago

If you are using expo, delete your ios/ folder and run npx expo run:ios

CC @hassanharoon321

Not using expo I just downgrade version

MendyK commented 11 months ago

@hassanharoon321 I'm on react native 0.72.5. Try rerunning the app in the usual way you do after deleting the iOS folder.

austimkelly commented 11 months ago

Changing from #import <React/RCTAppSetupUtils.h> to #import <RCTAppSetupUtils.h> fixed for me. I'm building with expo, so I had to fix this. Versions:

The RCTAppSetUpUtils is under a different project. I'm not sure if that changed during a react native upgrade.

Screenshot 2023-10-06 at 2 35 55 PM

Here's where the <React/*> includes are:

Screenshot 2023-10-06 at 2 36 34 PM

Maybe some include paths are messed up?

surasit-int-trueid commented 10 months ago

I just changed to new format

import <React/RCTAppSetupUtils.h>

change to

import "RCTAppSetupUtils.h"

SalmanFaris53 commented 7 months ago

iam also facing the same issue:-

Screenshot 2024-01-25 at 9 38 37 AM

any one got the solution?

FladioArmandika commented 7 months ago

after i changed #import <React/RCTAppSetupUtils.h> into #import "RCTAppSetupUtils.h"

I got another error

/Build/Products/Debug-iphonesimulator/RCT-Folly/folly.framework/Headers/folly/Optional.h:614:10 
'folly/experimental/coro/Coroutine.h' file not found
JoDerGraf commented 7 months ago

after i changed #import <React/RCTAppSetupUtils.h> into #import "RCTAppSetupUtils.h"

I got another error

/Build/Products/Debug-iphonesimulator/RCT-Folly/folly.framework/Headers/folly/Optional.h:614:10 
'folly/experimental/coro/Coroutine.h' file not found

Have you found a solution for it? I have the same problem.

rocketraman commented 4 months ago

Changing from #import <React/RCTAppSetupUtils.h> to #import <RCTAppSetupUtils.h> fixed for me.

This solves not finding RCTAppSetupUtils, but then for me leads to:

In file included from /.../MyRNProject/AppDelegate.mm:8:
/.../Pods/Headers/Public/React-RCTAppDelegate/RCTAppSetupUtils.h:23:9: fatal error: 'React/JSCExecutorFactory.h' file not found
#import <React/JSCExecutorFactory.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
rocketraman commented 4 months ago

I can see that React/JSCExecutorFactory.h is not supposed to be included unless hermes is disabled:

https://github.com/facebook/react-native/blob/972b42016ef02dc3cecf9743bad82c9fd2068805/packages/react-native/Libraries/AppDelegate/RCTAppSetupUtils.h#L16C1-L24C21

and that the CxxBridge pod that contains JSCExecutorFactory.h is not included in my Podfile.lock, also presumably because Hermes is now enabled by default.

I can also confirm that by manually deleting the #if USE_HERMES check, and the #else block that loads JSCExecutorFactory.h, the build works. So it seems that the #if USE_HERMES macro is somehow failing to return true for this header file.

rocketraman commented 4 months ago

Looking at the output of clang, the parameter passed to compile RCTAppSetupUtils.mm is -DUSE_HERMES, not -DUSE_HERMES\=1 as all the other files.

I'm guessing this is due to this line:

https://github.com/facebook/react-native/blob/098454d4250127a8b6dea8d8b36b2754953ed118/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec#L28

hoonjoo-park commented 3 months ago

As @rocketraman suggested, it seems like USE_HERMES isn't working properly. As a workaround, I've done the following below:

  1. Go to the Xcode project's Build Settings.
  2. Find Preprocessor Macros inside Apple Clang - Preprocessing section.
  3. Add USE_HERMES=1 for both Debug and Release configurations.
SunZhiC commented 3 months ago

iam also facing the same issue:-

Screenshot 2024-01-25 at 9 38 37 AM

any one got the solution?

They have changed the default content in AppDelegate.m and AppDeleagate.h file, try to create a new project with react-native 0.72.4, then compare these two new files with old files.

Ahsanali012 commented 2 months ago

any fix for this as same error in 0.72.3 project having xcode 15.4??