Skip to content

Commit 5c8897f

Browse files
chrfalchclaude
andcommitted
fix(ios-prebuild): stage deps headers in compose-xcframework + sort test imports
Two CI fixes for the prebuild-ios-core workflow: - prebuild-ios-core.yml: the compose-xcframework job downloaded the build slices and React headers but never staged third-party/ReactNativeDependencies.xcframework. buildReactNativeHeadersXcframework folds the third-party deps namespaces (folly/glog/boost/...) into ReactNativeHeaders.xcframework, so it fail-closed with "deps namespace 'folly' missing ... refusing to ship an incomplete ReactNativeHeaders.xcframework". Add the Download + Extract ReactNativeDependencies steps (mirroring build-slices) so the deps headers are present before composing. - headers-spec-test.js: reorder requires so the `../headers-spec` import sorts before `fs`, fixing the @react-native/monorepo/sort-imports warning that failed `eslint --max-warnings 0` in test_js. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent bf98226 commit 5c8897f

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

.github/workflows/prebuild-ios-core.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,22 @@ jobs:
157157
pattern: prebuild-ios-core-headers-${{ matrix.flavor }}-*
158158
path: packages/react-native/.build/headers
159159
merge-multiple: true
160+
- name: Download ReactNativeDependencies
161+
if: steps.restore-ios-xcframework.outputs.cache-hit != 'true'
162+
uses: actions/download-artifact@v7
163+
with:
164+
name: ReactNativeDependencies${{ matrix.flavor }}.xcframework.tar.gz
165+
path: /tmp/third-party/
166+
- name: Extract ReactNativeDependencies
167+
if: steps.restore-ios-xcframework.outputs.cache-hit != 'true'
168+
shell: bash
169+
run: |
170+
# ReactNativeHeaders.xcframework (built by the compose step) folds in
171+
# the third-party deps namespaces (folly/glog/boost/...), so the deps
172+
# headers must be staged here too — not just in build-slices.
173+
tar -xzf /tmp/third-party/ReactNativeDependencies${{ matrix.flavor }}.xcframework.tar.gz -C /tmp/third-party/
174+
mkdir -p packages/react-native/third-party/
175+
mv /tmp/third-party/packages/react-native/third-party/ReactNativeDependencies.xcframework packages/react-native/third-party/ReactNativeDependencies.xcframework
160176
- name: Setup Keychain
161177
if: ${{ steps.restore-ios-xcframework.outputs.cache-hit != 'true' && env.REACT_ORG_CODE_SIGNING_P12_CERT != '' }}
162178
uses: apple-actions/import-codesign-certs@v3 # https://github.com/marketplace/actions/import-code-signing-certificates

packages/react-native/scripts/ios-prebuild/__tests__/headers-spec-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010

1111
'use strict';
1212

13-
const fs = require('fs');
1413
const {
1514
planFromInventory,
1615
renderNamespaceModuleMap,
1716
renderReactModuleMap,
1817
} = require('../headers-spec');
18+
const fs = require('fs');
1919

2020
// isUmbrellaSafe reads each header's source to reject extern-inline defs. Stub
2121
// it to empty so synthetic objc-modular-candidate headers count as umbrella-safe

0 commit comments

Comments
 (0)