eas build: hermes requires libicu-dev on the OS for building [rn new architecture]
See original GitHub issueBuild/Submit details page URL
Summary
When trying to build an app on eas-build, the image is missing the required ICU libraries for hermes. When using the new architecture Hermes is mandatory => new architecture won’t work with eas build
“To avoid substantially increasing the binary size of Hermes, we decided to implement it with another strategy by consuming and mapping the ICU facilities provided by the libraries included in the operating systems, at the cost of some (often minor) variance in behaviors across platforms.” - https://reactnative.dev/blog/2021/10/26/toward-hermes-being-the-default
Managed or bare?
bare
Environment
npx expo-env-info
:
expo-env-info 1.0.5 environment info:
System:
OS: Linux 5.14 Ubuntu 22.04.1 LTS 22.04.1 LTS (Jammy Jellyfish)
Shell: 5.1.16 - /bin/bash
Binaries:
Node: 16.16.0 - ~/.nvm/versions/node/v16.16.0/bin/node
Yarn: 1.22.19 - ~/projects/fiskalcheck/frontend/node_modules/.bin/yarn
npm: 8.11.0 - ~/.nvm/versions/node/v16.16.0/bin/npm
Watchman: 4.9.0 - /usr/bin/watchman
SDKs:
Android SDK:
API Levels: 30, 31
Build Tools: 30.0.2, 30.0.3, 31.0.0, 33.0.0
npmPackages:
expo: ^47.0.7 => 47.0.7
react: 18.1.0 => 18.1.0
react-dom: 18.1.0 => 18.1.0
react-native: 0.70.5 => 0.70.5
npmGlobalPackages:
eas-cli: 2.7.1
expo-cli: 6.0.8
Expo Workflow: bare
expo doctor
:
Expected package @expo/config-plugins@^5.0.2
Found invalid:
@expo/config-plugins@5.0.1
(for more info, run: npm why @expo/config-plugins)
Expected package @expo/prebuild-config@^5.0.5
Found invalid:
@expo/prebuild-config@5.0.3
(for more info, run: npm why @expo/prebuild-config)
Error output
Task ':ReactAndroid:hermes-engine:configureBuildForHermes'.
[RUN_GRADLEW] CMake Error at CMakeLists.txt:523 (message):
[RUN_GRADLEW] Unable to find ICU.
. . .
[RUN_GRADLEW] -- The following ICU libraries were not found:
[RUN_GRADLEW] -- uc (required)
[RUN_GRADLEW] -- i18n (required)
[RUN_GRADLEW] -- data (required)
[RUN_GRADLEW] -- uc (required)
[RUN_GRADLEW] -- Failed to find all ICU components (missing: ICU_INCLUDE_DIR ICU_LIBRARY _ICU_REQUIRED_LIBS_FOUND) (Required is at least version "52")
[RUN_GRADLEW] -- Configuring incomplete, errors occurred!
Reproducible demo or steps to reproduce from a blank project
- setup eas bare workflow project with RN-0.75
- add expo-localization & i18n (i18next)
- enable new architecture
- run
eas build --platform android
Issue Analytics
- State:
- Created 10 months ago
- Comments:7 (4 by maintainers)
Top Results From Across the Web
Using Hermes Engine - Expo Documentation
A guide on configuring Hermes for both Android and iOS in an Expo project. ... Development builds will need to be recompiled with...
Read more >react native error, Could not find which method maven() to ...
im using react native version 0.68.4 and when i run npm run android i get this error. Where: Build file ...
Read more >React Native: What You Need To Know About Hermes.
We built a new JavaScript engine we call Hermes. It is designed to improve app performance, focusing on our. React Native apps, even...
Read more >uNA - River Thames Conditions
Lewis structure bond energy, Do voodoo friends really work, Jotron usa, Coming up easy ... E46 318ci oil separator, Harga henna arzoo, Require...
Read more >error failed to load configuration of your project. info run cli with
In Xcode, you need to add a new device called "iPhone X". Also answered here: ... expo/eas-cliEAS build error when adding dev dependencies#1263....
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
We don’t have a date for official support, but the missing ICU should be added after the weekend.
this is not about sudo persmission, your script file does not have execute permission. You need to run
chmod +x ./scripts/eas-buld-pre-install.sh
locally and build again