Use $(PODS_ROOT) for the VFS overlay flag in aggregate and third-party xcconfigs - #58078
Draft
janicduplessis wants to merge 1 commit into
Draft
Use $(PODS_ROOT) for the VFS overlay flag in aggregate and third-party xcconfigs#58078janicduplessis wants to merge 1 commit into
janicduplessis wants to merge 1 commit into
Conversation
…y xcconfigs configure_aggregate_xcconfig interpolated the absolute resolved path of React-VFS.yaml into every aggregate and third-party pod xcconfig, while add_rncore_dependency already emits the same flag as $(PODS_ROOT)/React-Core-prebuilt/React-VFS.yaml for podspec-processed pods. The absolute form ties the generated Pods directory to the checkout that ran pod install: a Pods directory restored from a CI cache or cloned into a git worktree keeps pointing at the original checkout's overlay for as long as that path exists, and fails without naming the real cause once it does not. Emit the $(PODS_ROOT) form here too. Xcode expands the variable before clang reads the flag, and the existence check above still runs against the resolved absolute path at install time.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary:
configure_aggregate_xcconfiginterpolates the absolute resolved path ofReact-VFS.yamlinto every aggregate and third-party pod xcconfig:while
add_rncore_dependencyin the same file already emits the identical flag as$(PODS_ROOT)/React-Core-prebuilt/React-VFS.yamlfor podspec-processed pods. The absolute form is the only thing tying those generated xcconfigs to the checkout that ranpod install: a Pods directory restored from a CI cache or cloned into a git worktree keeps resolving the original checkout's overlay for as long as that path exists, and fails without naming the real cause once it doesn't. In a bare RN 0.86.2 app this accounts for 168 absolute-path references across 28 pods' xcconfigs — every other path CocoaPods generates there is${PODS_ROOT}-anchored.This targets
0.86-stabledirectly becausemainno longer has the code: the prebuilt-core integration there dropped the VFS overlay entirely and its replacement already uses$(PODS_ROOT)throughout, so there is nothing to fix forward.Changelog:
[IOS] [FIXED] - Use $(PODS_ROOT) instead of an absolute path for the VFS overlay flag in aggregate and third-party pod xcconfigs
Test Plan:
On a bare RN 0.86.2 app (prebuilt core, Expo SDK 57):
pod install, thengrep -r '/Volumes' 'Pods/Target Support Files': the 168-ivfsoverlay "/abs/.../React-VFS.yaml"references become$(PODS_ROOT)/React-Core-prebuilt/React-VFS.yaml; combined with Expo-side fixes ([ios] Anchor generated Pods paths on ${PODS_ROOT} instead of absolute paths expo/expo#49251) the generated output reaches 0 absolute pathsxcodebuildof the app workspace succeedsPods/verbatim, nopod install) and built with a fresh DerivedData: succeeds, with the expanded flag pointing inside the worktree instead of the original checkoutThe install-time existence check above the patched lines still runs against the resolved absolute path, so the missing-overlay error path is unchanged.