From de6bfec82a1cb4b387bfe8a87b1f597f39572764 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 14 Jun 2023 07:46:07 -0700 Subject: [PATCH] Disable bitcode from Hermes (#37868) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/37868 Thanks to the help of the community, we discovered that we can safely disable the bitcode setting in Hermes. Community testing reported that the tarball size get reduced from ~500 Mb to ~25 Mb, a x20 reduction ## Changelog: [iOS][Changed] - Disabled bitcode for Hermes prebuilts Reviewed By: dmytrorykun Differential Revision: D46704633 fbshipit-source-id: a6624110f27eb9f18e6b57ed28aa2f86804d45e7 --- .circleci/config.yml | 4 ++-- .../sdks/hermes-engine/utils/build-apple-framework.sh | 9 ++------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 96523f6d3a1..933e062f9db 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -60,8 +60,8 @@ references: gems_cache_key: &gems_cache_key v1-gems-{{ checksum "Gemfile.lock" }} gradle_cache_key: &gradle_cache_key v1-gradle-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "packages/react-native/ReactAndroid/gradle.properties" }} hermes_workspace_cache_key: &hermes_workspace_cache_key v5-hermes-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/hermes/hermesversion" }} - hermes_workspace_debug_cache_key: &hermes_workspace_debug_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} - hermes_workspace_release_cache_key: &hermes_workspace_release_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} + hermes_workspace_debug_cache_key: &hermes_workspace_debug_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} + hermes_workspace_release_cache_key: &hermes_workspace_release_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} hermes_linux_cache_key: &hermes_linux_cache_key v1-hermes-{{ .Environment.CIRCLE_JOB }}-linux-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} hermes_windows_cache_key: &hermes_windows_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-windows-{{ checksum "/Users/circleci/project/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} hermes_tarball_debug_cache_key: &hermes_tarball_debug_cache_key v4-hermes-tarball-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} diff --git a/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh index aab75e92ebf..429707c356c 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh @@ -52,13 +52,8 @@ function build_host_hermesc { # Utility function to configure an Apple framework function configure_apple_framework { - local enable_bitcode enable_debugger cmake_build_type + local enable_debugger cmake_build_type - if [[ $1 == iphoneos || $1 == catalyst ]]; then - enable_bitcode="true" - else - enable_bitcode="false" - fi if [[ $BUILD_TYPE == "Debug" ]]; then enable_debugger="true" else @@ -82,7 +77,7 @@ function configure_apple_framework { -DHERMES_ENABLE_LIBFUZZER:BOOLEAN=false \ -DHERMES_ENABLE_FUZZILLI:BOOLEAN=false \ -DHERMES_ENABLE_TEST_SUITE:BOOLEAN=false \ - -DHERMES_ENABLE_BITCODE:BOOLEAN="$enable_bitcode" \ + -DHERMES_ENABLE_BITCODE:BOOLEAN=false \ -DHERMES_BUILD_APPLE_FRAMEWORK:BOOLEAN=true \ -DHERMES_BUILD_APPLE_DSYM:BOOLEAN=true \ -DIMPORT_HERMESC:PATH="$IMPORT_HERMESC_PATH" \