fix(rn-tester): restore RNTesterPods.xcodeproj/project.pbxproj on 0.83-merge (#2960)
## Summary The `RNTesterPods.xcodeproj/project.pbxproj` file is **missing from `0.83-merge`** but exists on `main`. Without it, `pod install` fails immediately on `0.83-merge` with: [!] The plist file at path /.../packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj doesn't exist. Which blocks any contributor from validating any PR against `0.83-merge` via the RNTester pod-install path. ### Root cause (interaction between an ignore rule and the upstream merge) Both `main` and `0.83-merge` carry this rule in `.gitignore`: /packages/rn-tester/**/*.xcodeproj On `main`, `project.pbxproj` is tracked despite that rule — `gitignore` does not affect files already in the index, and the file was originally added before the rule existed (or via `-f`). On `0.83-merge`, the file was dropped from the tree at some point during the upstream-0.83 merge (likely via a `git rm` resolving a conflicting hunk, or via a merge driver that touched the .xcodeproj contents). Once it was out of the index, the existing ignore rule prevented anyone from `git add`ing it back through the normal path — the explicit `-f` flag is required. Verification via `gh api`: - `main` tree contains `packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj` (blob SHA `90e6c295ce0ec461333aa96af37d8b0ceebe98dc`, 120,346 bytes). - `0.83-merge` tree only contains `packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/` (the scheme files). - The xcshareddata/ scheme files on `0.83-merge` reference `RNTesterPods.xcodeproj` as their container, so the absence isn't an intentional structural change. ### Fix This PR restores the file verbatim from `main`'s blob `90e6c295…` (force-added past the ignore rule). Once in the index, future operations track it normally. The `.gitignore` rule is preserved unchanged — it correctly excludes other generated `.xcodeproj` outputs and only needed the one-time `-f` to reseat this specific file. The .pbxproj is structurally cross-compatible between `main` (RN 0.81.x content) and `0.83-merge` (RN 0.83 content) — both branches share the same target layout (`RNTester`, `RNTesterUnitTests`, `RNTesterIntegrationTests`, `RNTester-macOS`, `RNTester-macOSUnitTests`, `RNTester-macOSIntegrationTests`, `RNTester-visionOS`). `pod install` regenerates the workspace from this file + the Podfile, so any drift between branches gets reconciled by the install step. If maintainers have a preferred way to regenerate the pbxproj (script, fresh `pod init` flow), this PR can be closed in favor of that. The change is offered as the minimal unblock so contributors can resume validation against `0.83-merge`. Indirectly unblocks the **"RNTester validation"** item on the Road to 0.83 tracking issue (#2901) — that item can't proceed until pod install works on `0.83-merge`. - **Before:** `pod install` in `packages/rn-tester` on `0.83-merge` fails with `[!] The plist file at path .../project.pbxproj doesn't exist.` Reproducible on any fresh `0.83-merge` checkout. `yarn prepare-ios` hits the same error inside the cocoapods-runner subprocess. - **After:** `pod install` in `packages/rn-tester` on `0.83-merge` completes with `Pod installation complete! There are 86 dependencies from the Podfile and 85 total pods installed.` `RNTesterPods.xcworkspace/contents.xcworkspacedata` is generated, all `Pods-RNTester*` xcconfig files are written, hermes-engine script phases are wired. (Validated locally with HEAD = current `0.83-merge` tip.) - Remaining `[!] ... CLANG_CXX_LANGUAGE_STANDARD override` warnings are pre-existing on `main` and unrelated to this restore. ## Related - #2901 — Road to 0.83 tracking issue (this unblocks RNTester validation) - Upstream blob on \`main\`: SHA \`90e6c295ce0ec461333aa96af37d8b0ceebe98dc\` (120,346 bytes)
T
Thiago Vinhas committed
fb319eeac27fa3b1e1fdf7e7eead505b3e97d45d
Parent: e4fa8d7
Committed by Saad Najmi <sanajmi@microsoft.com>
on 7/13/2026, 3:22:04 PM