Preserve Expo-generated modulemap in replace-rncore-version.js#56335
Preserve Expo-generated modulemap in replace-rncore-version.js#56335Insik-Han wants to merge 2 commits intofacebook:mainfrom
Conversation
When using Expo with use_frameworks!, Expo generates a React-use-frameworks.modulemap file inside React-Core-prebuilt. This file was lost when replaceRNCoreConfiguration replaced the directory contents, causing subsequent builds to fail. Save and restore the modulemap around the directory replacement.
|
Hi @Insik-Han! Thank you for your pull request and welcome to our community. Action RequiredIn order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at [email protected]. Thanks! |
|
Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks! |
Ensures the Expo-generated React-use-frameworks.modulemap is restored even when mv/cp partially fails during directory replacement.
Summary
When using Expo with
use_frameworks!in the Podfile, Expo generates aReact-use-frameworks.modulemapfile insideReact-Core-prebuilt. WhenreplaceRNCoreConfigurationruns (e.g., when switching between Debug and Release builds), this file can be lost, causing subsequent builds to fail with modulemap-related errors.The current code removes only directories inside
React-Core-prebuilt(preserving top-level files), butReact-use-frameworks.modulemapmay reside inside one of those subdirectories depending on the Expo version. This PR explicitly saves and restores the modulemap around the directory replacement to make the intent clear and guard against this case.The restore is placed inside the
finallyblock so it runs even ifmv/cppartially fails during the directory move.Changelog:
[IOS] [Fixed] - Preserve Expo-generated
React-use-frameworks.modulemapacrossreplace-rncore-version.jsrunsTest Plan
use_frameworks!in Podfilepod installfor a Debug buildreplace-rncore-version.jsReact-use-frameworks.modulemapis present inReact-Core-prebuilt/after the replacement