'jsi/jsi.h'文件未找到-将react-native从0.64.0升级到0.71.12时出错

w6lpcovy  于 2023-10-22  发布在  React
关注(0)|答案(1)|浏览(137)

0.64.0升级到0.71.12是迄今为止我在RN上经历过的最痛苦的升级。
我已经解决了其他3个问题,直到我偶然发现这个问题,我似乎无法解决。我还没能编译好。
在iOS模拟器上运行应用程序时,我得到以下错误:

'jsi/jsi.h' file not found

我发现的唯一相关问题是this one,它与第三方库相关联。从堆栈跟踪来看,我觉得这可能来自react-native本身。

任何帮助或提示是非常欢迎的!

bkkx9g8r

bkkx9g8r1#

我检查了react-native/packages/react-native/ReactCommon/jsi/React-jsi.podspec文件,发现了这些行:

if js_engine == :jsc
    s.source_files  = "**/*.{cpp,h}"
    s.exclude_files = [
                        "jsi/jsilib-posix.cpp",
                        "jsi/jsilib-windows.cpp",
                        "**/test/*"
                      ]

  elsif js_engine == :hermes
    # JSI is provided by hermes-engine when Hermes is enabled
    # Just need to provide JSIDynamic in this case.
    s.source_files = "jsi/JSIDynamic.{cpp,h}"
    s.dependency "hermes-engine"
  end
end

找不到文件jsi.h,因为js_engine已设置为:hermes
我把它切换到:jsc,它帮助。
以下是如何在Podfile中执行此操作:
1.将iOS版本更改为至少13:

platform :ios, '13.0'

1.调用use_react_native时禁用爱马仕:

use_react_native!(
    :path => "../node_modules/react-native",
    :hermes_enabled => false,
    # ...

这帮了我。

相关问题