Skip to content

Commit c0ffd9b

Browse files
chrfalchclaude
andcommitted
feat(ios-prebuild): SocketRocket privacy manifest + Xcode 26 header layout
- Embed an RN-authored, accurate-empty PrivacyInfo.xcprivacy for SocketRocket in the deps prebuild (upstream ships no privacy manifest; the deps artifact historically carried resource bundles only for boost/folly/glog). SocketRocket uses no Required Reason APIs. - Xcode 26's SwiftPM rejects a public-headers directory where the umbrella header has sibling directories ("target 'SocketRocket' has invalid header layout"): stage the flat public headers into include/ via prepareScript and point publicHeaderFiles there. Xcode 16 accepts both layouts; the artifact's Headers/SocketRocket namespace is unaffected. - Rename the dependency 'socket-rocket' -> 'SocketRocket' so the bundle and header-namespace naming line up (ReactNativeDependencies_SocketRocket.bundle). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 6e42b09 commit c0ffd9b

2 files changed

Lines changed: 24 additions & 4 deletions

File tree

scripts/releases/ios-prebuild/configuration.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,17 +136,25 @@ const dependencies /*: ReadonlyArray<Dependency> */ = [
136136
},
137137
},
138138
{
139-
name: 'socket-rocket',
139+
name: 'SocketRocket',
140140
version: '0.7.1',
141+
// Xcode 26's SwiftPM rejects a public-headers dir where the umbrella
142+
// header (SocketRocket.h) has sibling directories (SocketRocket/Internal):
143+
// "target 'SocketRocket' has invalid header layout". Stage the flat public
144+
// headers into include/ and point publicHeaderFiles there. The artifact's
145+
// Headers/SocketRocket namespace (files.headers) is unaffected, and
146+
// Xcode 16 accepts both layouts.
147+
prepareScript: 'mkdir -p include && cp SocketRocket/*.h include/',
141148
url: new URL(
142149
'https://github.com/facebookincubator/SocketRocket/archive/refs/tags/0.7.1.tar.gz',
143150
),
144151
files: {
145-
sources: ['SocketRocket/**/*.{h,m}'],
152+
sources: ['SocketRocket/**/*.{h,m}', 'include/*.h'],
146153
headers: ['SocketRocket/*.h'],
154+
resources: ['../../../scripts/releases/ios-prebuild/resources/SocketRocket/PrivacyInfo.xcprivacy'],
147155
},
148156
settings: {
149-
publicHeaderFiles: './SocketRocket',
157+
publicHeaderFiles: './include',
150158
headerSearchPaths: [
151159
'./',
152160
'SocketRocket',
@@ -254,7 +262,7 @@ const dependencies /*: ReadonlyArray<Dependency> */ = [
254262
'fmt',
255263
'boost',
256264
'fast_float',
257-
'socket-rocket',
265+
'SocketRocket',
258266
],
259267
settings: {
260268
publicHeaderFiles: './',
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>NSPrivacyAccessedAPITypes</key>
6+
<array/>
7+
<key>NSPrivacyCollectedDataTypes</key>
8+
<array/>
9+
<key>NSPrivacyTracking</key>
10+
<false/>
11+
</dict>
12+
</plist>

0 commit comments

Comments
 (0)