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

[0.73 RC.4][iOS] Multiple jsi.h from different sources #41498

Closed
Kudo opened this issue Nov 15, 2023 · 4 comments
Closed

[0.73 RC.4][iOS] Multiple jsi.h from different sources #41498

Kudo opened this issue Nov 15, 2023 · 4 comments
Labels
Contributor A React Native contributor. Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. Needs: Triage 🔍 p: Expo Partner: Expo Partner Platform: iOS iOS applications. Type: Upgrade Issue Issues reported from upgrade issue form

Comments

@Kudo
Copy link
Contributor

Kudo commented Nov 15, 2023

New Version

0.73.0-rc.4

Old Version

0.72.5

Build Target(s)

iOS

Output of react-native info

System:
  OS: macOS 14.0
  CPU: (8) arm64 Apple M1 Pro
  Memory: 686.64 MB / 32.00 GB
  Shell:
    version: 3.6.1
    path: /opt/homebrew/bin/fish
Binaries:
  Node:
    version: 18.18.0
    path: /var/folders/yw/6bx918xn4671rggfcdxz7fph0000gn/T/yarn--1700049422150-0.40821589002556014/node
  Yarn:
    version: 1.22.19
    path: /var/folders/yw/6bx918xn4671rggfcdxz7fph0000gn/T/yarn--1700049422150-0.40821589002556014/yarn
  npm:
    version: 9.8.1
    path: ~/.volta/tools/image/node/18.18.0/bin/npm
  Watchman:
    version: 2023.10.02.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.12.1
    path: /Users/kudo/.rbenv/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.0
      - iOS 17.0
      - macOS 14.0
      - tvOS 17.0
      - watchOS 10.0
  Android SDK:
    API Levels:
      - "31"
      - "33"
      - "34"
    Build Tools:
      - 30.0.3
      - 31.0.0
      - 33.0.0
      - 33.0.1
      - 34.0.0
    System Images:
      - android-31 | Google Play ARM 64 v8a
      - android-33 | Google APIs ARM 64 v8a
      - android-33 | Google Play ARM 64 v8a
      - android-34 | Google Play ARM 64 v8a
    Android NDK: 23.1.7779620
IDEs:
  Android Studio: 2022.3 AI-223.8836.35.2231.10406996
  Xcode:
    version: 15.0.1/15A507
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.6
    path: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/javac
  Ruby:
    version: 2.7.4
    path: /Users/kudo/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.73.0-rc.4
    wanted: 0.73.0-rc.4
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Issue and Reproduction Steps

There is a regression from 0.73.0-rc.4 where it contains multiple jsi.h, one from React-jsi and the other from hermes-engine.

ios/Pods/Headers/Public/React-jsi/jsi/jsi.h
ios/Pods/Headers/Public/hermes-engine/jsi/jsi.h
ios/Pods/Headers/Private/React-jsi/jsi/jsi.h
ios/Pods/Headers/Private/hermes-engine/jsi/jsi.h
ios/Pods/hermes-engine/destroot/include/jsi/jsi.h

Since the jsi.h have different paths, they will cause unpredictable resolutions. At Expo, we have some test cases to throw jsi::JSError from hermes-engine and catch the exceptions out of hermes-engine. In hermes-engine, it uses the jsi.h from hermes-engine. On the other hand, on app side it uses the jsi.h from React-jsi to catch the jsi::JSError. Then the exceptions are not uncaught and make app crash.

The relevant change seems to be a66ebc5

Reproduce steps

$ npx react-native@latest init RN073 --version next
$ cd RN073
$ find ios/Pods -name 'jsi.h'
ios/Pods/Headers/Public/React-jsi/jsi/jsi.h
ios/Pods/Headers/Public/hermes-engine/jsi/jsi.h
ios/Pods/Headers/Private/React-jsi/jsi/jsi.h
ios/Pods/Headers/Private/hermes-engine/jsi/jsi.h
ios/Pods/hermes-engine/destroot/include/jsi/jsi.h
@Kudo Kudo added Needs: Triage 🔍 Type: Upgrade Issue Issues reported from upgrade issue form labels Nov 15, 2023
@facebook-github-bot facebook-github-bot added Contributor A React Native contributor. p: Expo Partner: Expo Partner labels Nov 15, 2023
@github-actions github-actions bot added the Platform: iOS iOS applications. label Nov 15, 2023
Copy link

⚠️ Missing Reproducible Example
ℹ️ We could not detect a reproducible example in your issue report. Please provide either:
  • If your bug is UI related: a Snack
  • If your bug is build/update related: use our Reproducer Template. A reproducer needs to be in a GitHub repository under your username.

@github-actions github-actions bot added the Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. label Nov 15, 2023
@dmytrorykun
Copy link
Contributor

Should be fixed here github.com//pull/41499

@dmytrorykun
Copy link
Contributor

Pick requested reactwg/react-native-releases#64 (comment)

@Kudo
Copy link
Contributor Author

Kudo commented Nov 16, 2023

can confirm this is resolved by #41499. thanks @dmytrorykun and @cipolleschi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Contributor A React Native contributor. Needs: Repro This issue could be improved with a clear list of steps to reproduce the issue. Needs: Triage 🔍 p: Expo Partner: Expo Partner Platform: iOS iOS applications. Type: Upgrade Issue Issues reported from upgrade issue form
Projects
None yet
Development

No branches or pull requests

3 participants