如何在React Native中根据Android/iOS环境变量启用/禁用Hermes?

问题描述 投票:0回答:1

由于 Hermes(RN +71.0 中)与 React Native Debugger 的兼容性问题,我想在开发中禁用 Hermes,并在生产中自动启用它,并使用 Android/iOS 特定的 ENV 文件。

gradle.properties

# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true

Podfile

  use_react_native!(
    .....

    # Hermes is now enabled by default. Disable by setting this flag to false.
    # Upcoming versions of React Native may rely on get_default_flags(), but
    # we make it explicit here to aid in the React Native upgrade process.
    :hermes_enabled => true,

    .....
  )

我不太熟悉设置Android/iOS环境变量,所以我想知道如何使用它来根据我的环境启用/禁用Hermes?

android ios reactjs react-native environment-variables
1个回答
0
投票

您可以设置环境变量。

例如,如果您正在使用 Expo,您可以使用

CI=1
:

来处理它
:hermes_enabled => ENV['CI'] == '1',

非 Expo 解决方案可以是创建一个

.json
文件,其中包含
Podfile
的属性,例如
podfile-config.js
。在此
.js
中,您可以设置不同的标志,例如:

{
  "enableHermes": "true",
  "enableFlipper": "false"
  ...
}

您在

Podfile
中需要做的就是访问变量:

require 'json'
podfile_properties = JSON.parse(File.read(File.join(__dir__, 'podfile-config.js'))) rescue {}

并访问它们:

:hermes_enabled => podfile_properties['enableHermes'] == "true"

最后,您可能知道需要致电

pod install
:)

© www.soinside.com 2019 - 2024. All rights reserved.