-
Notifications
You must be signed in to change notification settings - Fork 25.1k
Description
Description
0.82.1 version introduced circular dependency in pods.
Specifically this line
react-native/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec
Line 53 in 3a625f7
| add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"]) |
Adding React-utils as dependency to React-runtimeexecutor causes this chain:
React-jsi -> React-jsitooling -> React-runtimeexecutor -> React-utils -> React-jsi
There was a similar issue before #51577 but there is no any solution, pr was closed
Steps to reproduce
- cd ReproducerApp
- yarn
- cd ios
- bundle install
- bundle exec pod install
Erro in reproducer is a bit different that I have in real project, but it's also connected to React-jsc and React-jsitooling, it's make sence that from React-jsitooling there is no way to React-jsc as React-jsitooling is a dependency of React-jsc
React Native Version
0.82.1
Affected Platforms
Build - MacOS
Output of npx @react-native-community/cli info
System:
OS: macOS 15.5
CPU: (8) arm64 Apple M1 Pro
Memory: 155.89 MB / 16.00 GB
Shell:
version: 3.2.57
path: /bin/bash
Binaries:
Node:
version: 22.11.0
path: /usr/local/bin/node
Yarn:
version: 1.22.19
path: /usr/local/bin/yarn
npm:
version: 10.9.0
path: /usr/local/bin/npm
Watchman:
version: 2024.12.02.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.15.2
path: /Users/anton/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.2
- iOS 18.2
- macOS 15.2
- tvOS 18.2
- visionOS 2.2
- watchOS 11.2
Android SDK: Not Found
IDEs:
Android Studio: 2024.2 AI-242.23726.103.2422.12816248
Xcode:
version: 16.2/16C5032a
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.12
path: /usr/bin/javac
Ruby:
version: 3.3.6
path: /Users/anton/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli": Not Found
react: Not Found
react-native: Not Found
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: false // don't now why it shows false, it's 0.82.1 version which should have only new arch
Stacktrace or Logs
**Project error**
Analyzing dependencies
RNFBAnalytics: Using default Firebase/Analytics with Ad Ids. May require App Tracking Transparency. Not allowed for Kids apps.
RNFBAnalytics: You may set variable `$RNFirebaseAnalyticsWithoutAdIdSupport=true` in Podfile to use analytics without ad ids.
RNFBAnalytics: GoogleAppMeasurementOnDeviceConversion pod added
RNFBAnalytics: Using overridden static_framework value of 'true'
RNFBApp: Using overridden static_framework value of 'true'
RNFBCrashlytics: Using overridden static_framework value of 'true'
RNFBMessaging: Using overridden static_framework value of 'true'
RNFBPerf: Using overridden static_framework value of 'true'
Fetching podspec for `hermes-engine` from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`
[Hermes] Using release tarball from URL: https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.82.1/react-native-artifacts-0.82.1-hermes-ios-debug.tar.gz
[Lottie React Native] Using install_modules_dependencies
/Users/anton/Documents/Develop/Projects/drops-frontend/react-native/node_modules/react-native-fbsdk-next/react-native-fbsdk-next.podspec:4: warning: already initialized constant Pod::FBSDKVersion
/Users/anton/Documents/Develop/Projects/drops-frontend/react-native/node_modules/react-native-fbsdk-next/react-native-fbsdk-next.podspec:4: warning: previous definition of FBSDKVersion was here
[!] There is a circular dependency between React-jsc and React-cxxreact and React-runtimeexecutor and React-utils
**Reproducer error**
ArgumentError - There is no path from React-jsitooling to React-jsc
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/dependency_graph.rb:249:in `path'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/dependency_graph.rb:193:in `add_edge'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/dependency_graph.rb:152:in `block in add_child_vertex'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/dependency_graph.rb:150:in `each'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/dependency_graph.rb:150:in `add_child_vertex'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:738:in `block in require_nested_dependencies_for'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:737:in `each'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:737:in `require_nested_dependencies_for'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:727:in `activate_new_spec'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:684:in `attempt_to_activate'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:254:in `process_topmost_state'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:182:in `resolve'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/molinillo-0.8.0/lib/molinillo/resolver.rb:43:in `resolve'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:94:in `resolve'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:1082:in `block in resolve_dependencies'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:64:in `section'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:1080:in `resolve_dependencies'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:125:in `analyze'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:422:in `analyze'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:244:in `block in resolve_dependencies'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:64:in `section'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:243:in `resolve_dependencies'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:162:in `install!'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/command/install.rb:52:in `run'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/lib/cocoapods/command.rb:52:in `run'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/gems/cocoapods-1.15.2/bin/pod:55:in `<top (required)>'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/bin/pod:25:in `load'
/Users/anton/Documents/Develop/Projects/react-native-circular-dependencies/ReproducerApp/vendor/bundle/ruby/3.3.0/bin/pod:25:in `<top (required)>'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/cli/exec.rb:58:in `load'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/cli/exec.rb:58:in `kernel_load'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/cli/exec.rb:23:in `run'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/cli.rb:455:in `exec'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/cli.rb:35:in `dispatch'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/cli.rb:29:in `start'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/bundler-2.5.22/exe/bundle:28:in `block in <top (required)>'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/3.3.0/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/Users/anton/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/bundler-2.5.22/exe/bundle:20:in `<top (required)>'
/Users/anton/.rbenv/versions/3.3.6/bin/bundle:25:in `load'
/Users/anton/.rbenv/versions/3.3.6/bin/bundle:25:in `<main>'
MANDATORY Reproducer
https://github.com/anta-semenov/react-native-circular-dependencies
Screenshots and Videos
No response