react-native icon indicating copy to clipboard operation
react-native copied to clipboard

[RN][iOS] Split hermes-engine podspec in Debug and Release to get rid of PRODUCTION flag

Open cipolleschi opened this issue 1 year ago • 3 comments

Summary:

In iOS in OSS, we used to use the PRODUCTION flag to install pods with a Release configuration. This is a non-standard flow which we would like to remove. The standard flow would only use Xcode Debug/Release configurations and would save the reinstall pods step to every developer.

The last blocker for the removal of this flag was the hermes-engine pod which not only has to use different configurations depending on whether it is build for debug or release, but it has also to provide different prebuilts for the two setups.

The adopted solution is to split the podspec in three: an high level podspec that depends on the flavour-aware podspecs. You can look here for the description of the issue and the adopted solution.

Changelog:

[IOS] [CHANGED] - Split Hermes-engine in three subspecs to remove the PRODUCTION flag

Test Plan:

Tested locally in an app created from the template Tested locally with RNTester CircleCI

cipolleschi avatar Jun 09 '23 15:06 cipolleschi

@cipolleschi has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot avatar Jun 09 '23 15:06 facebook-github-bot

Platform Engine Arch Size (bytes) Diff
android hermes arm64-v8a 8,747,778 -57
android hermes armeabi-v7a 8,060,382 -51
android hermes x86 9,239,388 -52
android hermes x86_64 9,089,192 -45
android jsc arm64-v8a 9,310,333 -94
android jsc armeabi-v7a 8,500,272 -89
android jsc x86 9,372,836 -89
android jsc x86_64 9,626,734 -87

Base commit: ef5d92f648670f5b32aacd73d9a9e278520ba743 Branch: main

analysis-bot avatar Jun 09 '23 16:06 analysis-bot

Abandoning this in favor of #37850

cipolleschi avatar Jun 13 '23 15:06 cipolleschi

This is not relevant anymore

cipolleschi avatar Jul 25 '23 13:07 cipolleschi