fix(ios): allow non-modular React includes in RNFB podspecs - #9200
Conversation
RNFBApp did not opt into RN's prebuilt RNCore helper, so <React/...> headers fail to resolve when RCT_USE_PREBUILT_RNCORE=1. Also allow non-modular includes so the umbrella validates under use_frameworks!. Co-authored-by: x-Wawa <wayan.neel@gmail.com>
…ebuilt RNCore Remaining RNFB podspecs did not opt into RN's prebuilt RNCore helper, so <React/...> headers fail to resolve when RCT_USE_PREBUILT_RNCORE=1. Set pod_target_xcconfig before the RN helpers so HEADER_SEARCH_PATHS and c++20 are not overwritten. Co-authored-by: x-Wawa <wayan.neel@gmail.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9200 +/- ##
============================================
+ Coverage 68.40% 68.42% +0.03%
Complexity 1915 1915
============================================
Files 516 516
Lines 37853 37853
Branches 5183 5183
============================================
+ Hits 25890 25898 +8
+ Misses 10177 10170 -7
+ Partials 1786 1785 -1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
install_modules_dependencies already calls it on RN 0.84+. Keep the guarded call on the package template, which does not use that helper.
Move the durable invariants out of the SPM ADR. Live pods do not double-call add_rncore_dependency; the package template still does.
The durable invariants already live in ios-rncore-podspec.md; the ephemeral tracker and Linear issue links do not belong on main.
After the tests-macos split both apps bind :8081, so a single mobile packager cannot serve platform=macos bundles.
mikehardy
left a comment
There was a problem hiding this comment.
LGTM
Went ahead and adopted the two docs suggestions: dropped the closed work-queue, and stripped Linear issue links from the durable docs. I prefer internal issue references not persist on the public repo — they are confusing for external consumers.
Also updated my personal deterministic full-test script (scripts/run-full-tests.sh, used in triage/review) to switch Metro to tests-macos after iOS/Android, now that the macOS e2e app is split out.
|
@mikehardy Would you mind publishing a release with this? |
|
@taylorkline sure - let me see if there's anything else I can batch in to it - but I'll queue up a release for later today my time, cheers |
|
I appreciate that |
|
v26.3.0 is out on npm now, got SDK bumps for all 3 underlying SDKs as well via #9203 - cheers |
RNFB umbrellas fail
-Wnon-modular-include-in-framework-moduleunderuse_frameworks!. SetCLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES=YESonpod_target_xcconfigbefore RN'sinstall_modules_dependencies, so helperHEADER_SEARCH_PATHSandc++20are not wiped.On RN 0.84+,
install_modules_dependenciesalready callsadd_rncore_dependency. Live RNFB pods do not call it again. The package template still does, because it does not use that helper.Maintainer reimplementation of #9024 (not merged as-is). Producer-side podspec compile only. Expo
forceStaticLinkingandtests/with prebuilt RNCore on are still open. This is the next piece of work.Related: #8883