From f529fe48768b8a1ee4d74a4964a294c485da83b9 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 13 Sep 2024 08:16:19 -0700 Subject: [PATCH] Exclude dSYM from the archive (#46472) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/46472 Currently, we are building the Debug symbols (dSYM) for hermes dSYM but we are not shipping them with the xcframework. This is correct, because Debug symbols can increase the size of Hermes thus enalrging the iOS IPA and increasing the download time when installing pods. We distribute the dSYM separatedly, in case users needs to symbolicate Hermes stack traces. However the path to the dSYM still appears in the Info.plist of the universal XCFramework and this can cause issues when submitting an app to apple. This change should remove those lines from the universal framework. It fixes https://github.com/facebook/react-native/issues/35863 ## Changelog [Internal] - Remove dSYM path from Info.plist Reviewed By: cortinico Differential Revision: D62603425 fbshipit-source-id: 038ec3d6b056a3d6f5585c8125d0430f56f11bb9 --- .github/actions/build-hermes-macos/action.yml | 4 ++-- .../hermes-engine/utils/build-apple-framework.sh | 12 ------------ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/actions/build-hermes-macos/action.yml b/.github/actions/build-hermes-macos/action.yml index daa6b3391450ed..ab0cb06b443965 100644 --- a/.github/actions/build-hermes-macos/action.yml +++ b/.github/actions/build-hermes-macos/action.yml @@ -22,7 +22,7 @@ runs: - name: Restore Cached Artifacts uses: actions/cache/restore@v4 with: - key: v4-hermes-artifacts-${{ inputs.flavor }}-${{ inputs.hermes-version }}-${{ inputs.react-native-version }} + key: v4-hermes-artifacts-${{ inputs.flavor }}-${{ inputs.hermes-version }}-${{ inputs.react-native-version }}-${{ hashFiles('./packages/react-native/sdks/hermes/utils/build-apple-frameworks.sh') }} path: | /tmp/hermes/osx-bin/${{ inputs.flavor }} /tmp/hermes/dSYM/${{ inputs.flavor }} @@ -200,7 +200,7 @@ runs: uses: actions/cache/save@v4 if: ${{ github.ref == 'refs/heads/main' || contains(github.ref, '-stable') }} # To avoid that the cache explode. with: - key: v4-hermes-artifacts-${{ inputs.flavor }}-${{ inputs.hermes-version }}-${{ inputs.react-native-version }} + key: v4-hermes-artifacts-${{ inputs.flavor }}-${{ inputs.hermes-version }}-${{ inputs.react-native-version }}-${{ hashFiles('./packages/react-native/sdks/hermes/utils/build-apple-frameworks.sh') }} path: | /tmp/hermes/osx-bin/${{ inputs.flavor }} /tmp/hermes/dSYM/${{ inputs.flavor }} 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 85cbb0e4ea502e..08701e2e25fda3 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 @@ -207,19 +207,7 @@ function create_universal_framework { for i in "${!platforms[@]}"; do local platform="${platforms[$i]}" local hermes_framework_path="${platform}/hermes.framework" - local dSYM_path="$hermes_framework_path" - local dSYM_base_path="$HERMES_PATH/destroot/Library/Frameworks" - - # If the dSYM rename has failed, the dSYM are generated as 0.dSYM - # (Apple default name) rather then hermes.framework.dSYM. - if [[ -e "$dSYM_base_path/${platform}/0.dSYM" ]]; then - dSYM_path="${platform}/0" - fi - args+="-framework $hermes_framework_path " - - # Path to dSYM must be absolute - args+="-debug-symbols $dSYM_base_path/$dSYM_path.dSYM " done mkdir -p universal