Skip to content

Commit 3f41fe2

Browse files
cipolleschifacebook-github-bot
authored andcommitted
Make fmt and SocketRocket compatible with Swift (#50874)
Summary: `SocketRocket` and `fmt` are part of React Native dependencies. If a library is written in swift and depends on them, it will fail to install the pods because these pods are not compatible with Swift. This change makes sure that the pods are installed in a way that is swift compatible. ## Changelog: [iOS][Fixed] - Make fmt and SocketRocket Swift friendly Pull Request resolved: #50874 Test Plan: Tested locally in a nightly app. ### Before the change: ``` yarn add react-native-video cd ios bundle exec pod install ``` This script resulted in this error: ``` [!] The following Swift pods cannot yet be integrated as static libraries: The Swift pod `react-native-video` depends upon `fmt` and `SocketRocket`, which do not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies. ``` ### After the change ``` yarn add react-native-video cd ios bundle exec pod install ``` This script installed pods successfully. Reviewed By: cortinico Differential Revision: D73512109 Pulled By: cipolleschi fbshipit-source-id: 222d85dba1cbdf4044e3c8459008a4083a720016
1 parent b9b61f0 commit 3f41fe2

3 files changed

Lines changed: 76 additions & 72 deletions

File tree

packages/react-native/scripts/react_native_pods.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,9 @@ def use_react_native! (
174174
pod 'glog', :podspec => "#{prefix}/third-party-podspecs/glog.podspec"
175175
pod 'boost', :podspec => "#{prefix}/third-party-podspecs/boost.podspec"
176176
pod 'fast_float', :podspec => "#{prefix}/third-party-podspecs/fast_float.podspec"
177-
pod 'fmt', :podspec => "#{prefix}/third-party-podspecs/fmt.podspec"
177+
pod 'fmt', :podspec => "#{prefix}/third-party-podspecs/fmt.podspec", :modular_headers => true
178178
pod 'RCT-Folly', :podspec => "#{prefix}/third-party-podspecs/RCT-Folly.podspec", :modular_headers => true
179+
pod 'SocketRocket', "~> #{Helpers::Constants::socket_rocket_config[:version]}", :modular_headers => true
179180
else
180181
pod 'ReactNativeDependencies', :podspec => "#{prefix}/third-party-podspecs/ReactNativeDependencies.podspec", :modular_headers => true
181182
end

packages/rn-tester/Podfile.lock

Lines changed: 72 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -2392,6 +2392,7 @@ DEPENDENCIES:
23922392
- ReactCommon-Samples (from `../react-native/ReactCommon/react/nativemodule/samples`)
23932393
- ReactCommon/turbomodule/core (from `../react-native/ReactCommon`)
23942394
- ScreenshotManager (from `NativeModuleExample`)
2395+
- SocketRocket (~> 0.7.1)
23952396
- Yoga (from `../react-native/ReactCommon/yoga`)
23962397

23972398
SPEC REPOS:
@@ -2561,87 +2562,87 @@ EXTERNAL SOURCES:
25612562
:path: "../react-native/ReactCommon/yoga"
25622563

25632564
SPEC CHECKSUMS:
2564-
boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90
2565-
DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb
2565+
boost: 1dca942403ed9342f98334bf4c3621f011aa7946
2566+
DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385
25662567
fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6
2567-
FBLazyVector: d3c2dd739a63c1a124e775df075dc7c517a719cb
2568-
fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd
2569-
glog: 5683914934d5b6e4240e497e0f4a3b42d1854183
2570-
hermes-engine: 4be07099027e1372268b255c29525480cddcd356
2568+
FBLazyVector: 05133a4d3886934758fc5a9b149e1881dc333ab7
2569+
fmt: 01b82d4ca6470831d1cc0852a1af644be019e8f6
2570+
glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a
2571+
hermes-engine: 1d4ebea15d13af28be0dd602bf09c8a27bdf5163
25712572
MyNativeView: 649cc955b283053e5832e8d45c2a20597daa94cd
25722573
NativeCxxModuleExample: d9bac8e847a427f0a40b0c9fb066ab102b3aefd0
25732574
OCMock: 589f2c84dacb1f5aaf6e4cec1f292551fe748e74
25742575
OSSLibraryExample: 9264008f6ba6a068cb2db3765ffdf519c9c0f6a4
25752576
RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669
25762577
RCTDeprecation: 3808e36294137f9ee5668f4df2e73dc079cd1dcf
2577-
RCTRequired: a00614e2da5344c2cda3d287050b6cee00e21dc6
2578-
RCTTypeSafety: 459a16418c6b413060d35434ba3e83f5b0bd2651
2579-
React: 170a01a19ba2525ab7f11243e2df6b19bf268093
2580-
React-callinvoker: f08f425e4043cd1998a158b6e39a6aed1fd1d718
2581-
React-Core: 798334ba9a8a5a97e84ab56b5565d6ed5ac09712
2582-
React-CoreModules: 25e5ff9b077e8a3780672a9eae5197e54ce367e1
2583-
React-cxxreact: 8a5de0fe0933c56fdf4c3548902d9525ea73322b
2584-
React-debug: 195df38487d3f48a7af04deddeb4a5c6d4440416
2585-
React-defaultsnativemodule: 47959b704240e39c6b401d3e3fe1da114b271ac6
2586-
React-domnativemodule: b6dd0c3be3e4514052f68d0b5a94a8d06e0f14fd
2587-
React-Fabric: 06175f348d6df210e7545ee513e38fe1709a6d82
2588-
React-FabricComponents: 86f8fef5d74fad3f4a642c044d4baf6558be74b9
2589-
React-FabricImage: ff9dc6afafc92e0da3f3d33d96ec40317bb8ec10
2590-
React-featureflags: 595651ea13c63a9f77f06d9a1973b665b4a28b7e
2591-
React-featureflagsnativemodule: f5f69151bc4c2945003fc502ebaecee7fda02c42
2592-
React-graphics: 38cc9ba3336bd50960e6052648374f3591abc7a6
2593-
React-hermes: 34666bbd8d6b585e290f000d4d31c2182ece8940
2594-
React-idlecallbacksnativemodule: b66d99ffb2ff765e1bd952b6bc6bf4ba3d5204d3
2595-
React-ImageManager: a6833445e17879933378b7c0ba45ee42115c14bc
2596-
React-jserrorhandler: bec134a192c50338193544404d45df24fb8a19ca
2597-
React-jsi: 4ad77650fb0ca4229569eb2532db7a87e3d12662
2598-
React-jsiexecutor: 569425f7cd2c3e005a17e5211843e541c11d6916
2599-
React-jsinspector: 885e8180e898f07e4d7df29e2681a89e69d736d3
2600-
React-jsinspectorcdp: 5fb266e5f23d3a2819ba848e9d4d0b6b00f95934
2601-
React-jsinspectornetwork: 207422b56a7918e83c94c207570849f83ab9052a
2602-
React-jsinspectortracing: 80e9418ac67630c76f15ef06534087037a822330
2603-
React-jsitooling: b1af12acbfcb039bf87f8f2a82bde3a79c2ddade
2604-
React-jsitracing: ce443686f52538d1033ce7db1e7d643e866262f0
2605-
React-logger: 116c3ae5a9906671d157aa00882a5ee75a5a7ebc
2606-
React-Mapbuffer: fc937cfa41140d7724c559c3d16c50dd725361c8
2607-
React-microtasksnativemodule: dd4dfd6306d8b42f5dab9ecb3bf04124e979a3da
2608-
React-NativeModulesApple: d3aec3f4d3cb80507777e1feeba3bdc70f9504a0
2609-
React-oscompat: 7133e0e945cda067ae36b22502df663d73002864
2610-
React-perflogger: ada3cdf3dfc8b7cd1fabe3c91b672e23981611ab
2611-
React-performancetimeline: 3de39e3c3deb17b2fc4d252578b63f215ea087c3
2612-
React-RCTActionSheet: 1bf8cc8086ad1c15da3407dfb7bc9dd94dc7595d
2613-
React-RCTAnimation: 263593e66c89bf810604b1ace15dfa382a1ca2df
2614-
React-RCTAppDelegate: 3d35d7226338009b22d1cf9621eaa827acb8fd1d
2615-
React-RCTBlob: 7b76230c53fe87d305eeeb250b0aae031bb6cbae
2616-
React-RCTFabric: 78b6aec5985ef438a9c088032c0e89d2bd77b3ba
2617-
React-RCTFBReactNativeSpec: 503491a0584dc29f03ef9f8ed366794604cd59ef
2618-
React-RCTImage: de404b6b0ebe53976a97e3a0dee819c83e12977b
2619-
React-RCTLinking: 06742cfad41c506091403a414370743a4ed75af3
2620-
React-RCTNetwork: f8f7ac330958ac85300827267390bc8decc06ba0
2621-
React-RCTPushNotification: ea11178d499696516e0ff9ae335edbe99b06f94b
2622-
React-RCTRuntime: 07b41aed797e8d950ada851c6363ecf931335663
2623-
React-RCTSettings: d3c2dd305ec81f7faf42762ec598d57f07fd43be
2624-
React-RCTTest: 2db46eda60bc2228cb67622a580e8e86b00088d9
2625-
React-RCTText: e416825b80c530647040ef91d23ffd35ccc87981
2626-
React-RCTVibration: 1837a27fc16eeffc9509779c3334fde54c012bcc
2627-
React-rendererconsistency: 777c894edc43dde01499189917ac54ee76ae6a6a
2628-
React-renderercss: a9cb6ba7f49a80dc4b4f7008bae1590d12f27049
2629-
React-rendererdebug: fea8bde927403a198742b2d940a5f1cd8230c0b4
2630-
React-rncore: 4a81ce7b8e47448973a6b29c765b07e01715921e
2631-
React-RuntimeApple: 97755a0b9f6adff1e1911ef4894cb0c5a9e40c77
2632-
React-RuntimeCore: 6854e513a18b7b8980732f561679de6cab1b5b4d
2633-
React-runtimeexecutor: fb2d342a477bb13f7128cceb711ee8311edce0c0
2634-
React-RuntimeHermes: 90f09fae56f0b1f458927beb171177a157334fe6
2635-
React-runtimescheduler: 0b50423a4c40db7d1d0c3cc6893b407bf7fb946c
2636-
React-timing: 9d49179631e5e3c759e6e82d4c613c73da80a144
2637-
React-utils: 3ea3fa757fec88afb26db14889fb4e7e8b5ca134
2638-
ReactAppDependencyProvider: 68f2d2cefd6c9b9f2865246be2bfe86ebd49238d
2578+
RCTRequired: c482db71773e4c26f5590519ee0146ff97969018
2579+
RCTTypeSafety: 9dbb69d76b01b3eb6cfff10751b120eb4719ce90
2580+
React: 879e9950c4e457a0b9be526798a2203056afed3f
2581+
React-callinvoker: e88f762ae931d38f3cfc01264c40c1b8f96bfec5
2582+
React-Core: b2c9b5ddac40521fcb16f20207e0d90e699f0c4a
2583+
React-CoreModules: 959fe435b21b13b20dd7ef6704c842e5df0dfa5b
2584+
React-cxxreact: 70dba7dd6868ac16f35972ca1530adaae213847a
2585+
React-debug: 19bd15a4a86f82d088b818dcbde0f0d0cb390295
2586+
React-defaultsnativemodule: a10c0e1ce88b78d8592f16c36baa0b3606688577
2587+
React-domnativemodule: b3dadb6d8e294af4ac3753ef149aae65460477ac
2588+
React-Fabric: 3d970b3cb38e9caff5f23e5bd9084524682df818
2589+
React-FabricComponents: 573612e5e9860abc659022d5cc7e1ea8f3353097
2590+
React-FabricImage: 2d08fc8b5cd765296d1c94b8ecb309195cd92359
2591+
React-featureflags: f1aa11419d898f0e37fcb69aafbb998ad29f401e
2592+
React-featureflagsnativemodule: ade1ba31d23165a496b79d796ae90b6e09456c7b
2593+
React-graphics: ef012d8da4de9f8918245695d94632a3574e8ea5
2594+
React-hermes: 1c67e1a0fc49390e87cdbf94c593ea067d32ce7b
2595+
React-idlecallbacksnativemodule: 819e49f01e4ec1c734b79963c6e199456445fed0
2596+
React-ImageManager: 491286f8492d005ddd9c9d26fc6148f718754eb0
2597+
React-jserrorhandler: e127c151810a44eef37e217ce3ea8dc53420aa98
2598+
React-jsi: 59b237396968e53b088eb7bca9c95234ea1450f5
2599+
React-jsiexecutor: a4c1de07d91be19a293ec81d291f9d4ba345cf23
2600+
React-jsinspector: a3a3c0734d8653dfaafd7935350f5f43ff59e60e
2601+
React-jsinspectorcdp: f9f23167d4badcd29964aa33d1f60e649bde6f21
2602+
React-jsinspectornetwork: 87f3a2fe7b04888d0941c1c5153607ed4d76c729
2603+
React-jsinspectortracing: a1746d20ea583ddd63235d152016fa2fabbedd74
2604+
React-jsitooling: 13a6ebc6c03a50ca547f62a91035e2ecce9faa4d
2605+
React-jsitracing: 2cb26de27216895357b7210c5a3b667d40a2a528
2606+
React-logger: 69cbfaada2b1c8afe1bc9f07321887f8b77e1cb0
2607+
React-Mapbuffer: 0dc40f635b0bbe2bb5233157a5ca55c55f975bee
2608+
React-microtasksnativemodule: 1c80957ecd552c51a72ae1fdd7e2c5d48d6e2198
2609+
React-NativeModulesApple: d1dc1e75a9a14f03dc2f92670c9a47b3700b909f
2610+
React-oscompat: 3901fd714c34a966ec7bae2a9174c0cbe1ac1cfb
2611+
React-perflogger: b0932efaaba483aa13641b9353617c26ea2c124d
2612+
React-performancetimeline: 63e45db09d75e583b1936650cceb5b046ee58523
2613+
React-RCTActionSheet: de1d8b7aeb3ae93a251a63f8e8038cc93b9d6ca7
2614+
React-RCTAnimation: 3e795e73197b73e03f5d0f304bba1064778cc2ed
2615+
React-RCTAppDelegate: 08268b740164533a5aae8f7c7c92b4699e7c4863
2616+
React-RCTBlob: 010dc14969ca00e517f4787f8cd753a0fd4ae500
2617+
React-RCTFabric: 714bceb61d1f756ed51e1487ba420e149bb92c00
2618+
React-RCTFBReactNativeSpec: 63ae58457f1fac05840b1b5cc647e347d12059cd
2619+
React-RCTImage: e111fae23fcd63032a44359e2706557dc36d5179
2620+
React-RCTLinking: 4cb3934aa86071ba4944f05d068b62e407aa30d6
2621+
React-RCTNetwork: 675ad1254b2acf6c8ec8c458ca8b272852bbeac1
2622+
React-RCTPushNotification: 69e20f2132e9c6ef4b1f3d259931846d6f557694
2623+
React-RCTRuntime: 7100e6ea948233548900ca58a3165c38e7624f7b
2624+
React-RCTSettings: bde52ef71ca7bdd23b4811e3abc8d4b0ecec8856
2625+
React-RCTTest: 9671edc72a8cc2d5ed6bcbdd7203ab5d5b992d06
2626+
React-RCTText: 564f5a51a1dd2916d4e2711acb10d238ff4c605d
2627+
React-RCTVibration: daf99169033e893ee17aa8690593cac6626fab81
2628+
React-rendererconsistency: afa3b7b2f1e5c890e782de21c7f99f190953a2c5
2629+
React-renderercss: ebafade0a3898cd029adbb08fea725c56bf6231c
2630+
React-rendererdebug: 6953132835c928321f2cefb866dd0b66b5cdd1b1
2631+
React-rncore: 06ab92ea476589c10e8f0f57a54617312a2e6c5e
2632+
React-RuntimeApple: ea3a775f149d886455320498fd25bb207b827cde
2633+
React-RuntimeCore: 562bffbcfc958d9fa5c91f50ed642713165c51fa
2634+
React-runtimeexecutor: 09cce6fc74b13861ec60fdfd91066a393812fde5
2635+
React-RuntimeHermes: 8609744a966766484b0615955b783d3419157c6b
2636+
React-runtimescheduler: 2251e2735d02b45f01b1116e8e5bfe0c9bc755df
2637+
React-timing: 3603ea1f09bcf7dd97cf62604218f7b471b90942
2638+
React-utils: e2117130776cd778c123a31fcc0c7270b4f87f66
2639+
ReactAppDependencyProvider: 7fa8930678f4d59ea5c58e22ba8bf73039b257fb
26392640
ReactCodegen: 0c8d830ce35b1b48f8b674b0d00e532abc448470
2640-
ReactCommon: a53973ab35d399560ace331ec9e2b26db0592cec
2641-
ReactCommon-Samples: 3dd174c775b04ab7d59a1b3c1a832e04377c9538
2641+
ReactCommon: 621bc6d58e5f902e35e9f3452092aaab7fcd025f
2642+
ReactCommon-Samples: 25ccde761335cc3fca1aa2adf670625823c98f6e
26422643
ScreenshotManager: 8687f6358b007230590842b03505606e905c3ce9
26432644
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
2644-
Yoga: 59290f2ce3fc5c34797a21244288cad99b357b63
2645+
Yoga: a99949337fd8434aedb236685499ef43362c7c18
26452646

26462647
PODFILE CHECKSUM: 8591f96a513620a2a83a0b9a125ad3fa32ea1369
26472648

scripts/releases/ios-prebuild/configuration.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ const dependencies /*: $ReadOnlyArray<Dependency> */ = [
9595
headerSearchPaths: ['include'],
9696
linkedLibraries: ['c++'],
9797
cxxCompilerFlags: [`-std=${CPP_STANDARD}`],
98+
defines: [{name: 'DEFINES_MODULE', value: 'YES'}],
9899
},
99100
},
100101
{
@@ -159,6 +160,7 @@ const dependencies /*: $ReadOnlyArray<Dependency> */ = [
159160
'SocketRocket/Internal/Security',
160161
'SocketRocket/Internal/Utilities',
161162
],
163+
defines: [{name: 'DEFINES_MODULE', value: 'YES'}],
162164
},
163165
},
164166
{

0 commit comments

Comments
 (0)