Open birdofpreyru opened 3 weeks ago
Hey,
Have you tried to remove run rm -rf Pods Podfile.lock build
in the iOS folder?
I'm assuming this is an issue with Codegen generated ShadowNodes.cpp
file which should be re-generated after clearing all the caches.
@okwasniewski I tried it now, it does not help :(
I was cloning the project, checking out the dev-16 branch and try to run it, but I'm struggling to reach your error.
When I build from Xcode, I get:
which is weird as I created symlink for node, npm and npx in /urs/local/bin which is accessible by Xcode.
I also tried to build with
yarn ios --verbose
and that's the error I get:
Are you using CMake to build other stuffs?
For what concern the "missing" file... A new app from the template works fine from the template. Do you have any special configuration? I see that the Xcode Scheme is a Custom one (not Release, nor Debug). I think that there is something funny in the configuration that needs to be updated to 0.75 to make it work.
Another thing you can try is to add these lines in this file
if ENV['USE_FRAMEWORKS']
header_search_path = header_search_path + [
"\"$(PODS_TARGET_SRCROOT)/react/renderer/textlayoutmanager/platform/ios\"",
"\"$(PODS_TARGET_SRCROOT)/react/renderer/components/textinput/platform/ios\"",
"\"$(PODS_TARGET_SRCROOT)/react/renderer/components/view/platform/cxx\"",
]
end
ss.dependency folly_dep_name, folly_version
+ ss.dependency yoga
ss.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
ss.source_files = "react/renderer/core/**/*.{m,mm,cpp,h}"
The ShadowNode.cpp is included by react/renderer/core and the core subspec contains it.
Weirdly, the React-Fabric
pod does not depends on yoga
even though files from it ends up importing Yoga files and even though it has visibility on the private headers from yoga....
@cipolleschi
I was cloning the project, checking out the dev-16 branch and try to run it, but I'm struggling to reach your error. <...>
Sorry, I forgot to mention you need to git submodule update --init --recursive
in the codebase root, to clone & checkout a couple of git submodules it depends upon.
Do you have any special configuration? I see that the Xcode Scheme is a Custom one (not Release, nor Debug)
In theory, that Custom configuration is the same as Debug or Release (I don't remember now, which one exactly), it just tests the build does not break with non-standard configuration name (it used to happen at some point, because CMake was looking at wrong folders).
The library's Podspec (https://github.com/birdofpreyru/react-native-static-server/blob/master/dr-pogodin-react-native-static-server.podspec) has a bunch of custom stuff to orchestrate CMake part of the build... perhaps I need to double-check how it differs from the clean version from the template.
Thanks for the context. I tried to spend some more time on the issue: using yarn ios --verbose
I can build up until the yoga/style/Style.h
file not found error.
However, not being able to use Xcode makes it hard because I don't have the import chain and so I can't find which file is importing Yoga.
The yoga/style/Style.h
is a private header and it is definitely there and properly configured... We might have missed to add one search_path somewhere.
@birdofpreyru could you please expand the error in your xcode so I can see the import chain?
here you are @cipolleschi
Does the react-native-static-server
library also have Components other than modules?
Because I can see that it generates a RNReactNativeStaticServerSpec folder with some component codegen but it is mostly empty...
Also, who is running these commands:
These are not part of our usual cycle. Could it be Bob?
If I change the codegenConfig
in the package.json
like this:
"codegenConfig": {
"name": "RNReactNativeStaticServerSpec",
+ "type": "modules",
- "type": "all",
"jsSrcsDir": "src",
"windows": {
"namespace": "winrt::ReactNativeStaticServer",
"outputDirectory": "windows/ReactNativeStaticServer/codegen"
},
"outputDir": {
"ios": "ios/generated",
"android": "android/generated"
},
"android": {
"javaPackageName": "com.drpogodin.reactnativestaticserver"
},
"includesGeneratedCode": true
},
It works. I think that Bob is doing some weird stuff there.
@cipolleschi Awesome! I'll double-check later it does not break the build for other target platforms.
For record, "type": "all"
comes from the library template created by create-react-native-library. Not sure now, should be this issue moved to its repo, or should it stay here, how do we handle it to fix the root cause?
By the way, you asked for repro in #46201 — here you got it, if you just press Send a message to the React Native layer
button, it will attempt to send a message to RN and show an alert, and that does not show up, as the alert fails with the error I reported in #46201 (though, when build for Android, obviously I had no chance to try it on iOS yet :)
Not sure now, should be this issue moved to its repo, or should it stay here, how do we handle it to fix the root cause?
the "all" alternative is supported by codegen. But I think that they are doing some shenanigans on top of what we do with codegen and that somehow breaks it.
It's probably a good idea to move the issue to their repo or to create a new one there. I'll reach out to them tomorrow to see if they know something about it.
By the way, https://github.com/facebook/react-native/issues/46201#issuecomment-2314996077 for repro in https://github.com/facebook/react-native/issues/46201 — here you got it, if you just press Send a message to the React Native layer button, it will attempt to send a message to RN and show an alert, and that does not show up, as the alert fails with the error I reported in https://github.com/facebook/react-native/issues/46201 (though, when build for Android, obviously I had no chance to try it on iOS yet :)
thanks, I'll try to look into it soon (although I'm more an iOS guy. 😅 )
Description
Attempting to upgrade my react-native-static-server library from RN@0.74 to RN@0.75.2, building for iOS, new arch, getting the error with yoga:
Interestingly, I've already upgraded a couple of other libs the same way, without having this issue.
Steps to reproduce
Clone https://github.com/birdofpreyru/react-native-static-server/commit/6f6c8993ef0e435577ca9dcbf8560acff9c526ea , try to build the Example App in the library codebase (in the
/example
folder) for iOS.React Native Version
0.75.2
Affected Platforms
Runtime - iOS, Build - MacOS
Output of
npx react-native info
Stacktrace or Logs
Reproducer
N/A
Screenshots and Videos
No response