Skip to content

Commit f92d96d

Browse files
committed
test(ios): fix SPM dynamic native coverage multi-image flush
1 parent a91593d commit f92d96d

7 files changed

Lines changed: 415 additions & 118 deletions

File tree

docs.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@
9898
{ "title": "TypeScript", "href": "/typescript" },
9999
{ "title": "iOS SPM Support", "href": "/ios-spm" },
100100
{ "title": "Platforms", "href": "/platforms" },
101-
{ "title": "iOS SPM Support", "href": "/ios-spm" },
102101
{ "title": "FAQs and Tips", "href": "/faqs-and-tips" },
103102
{
104103
"title": "Release Notes",

okf-bundle/testing/coverage-design.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ reporter: ['lcov', 'html', 'text-summary'],
221221
1. **Build:** LLVM flags in **`tests/ios/Podfile` `post_install`** (`pod install` after checkout):
222222
- **`testing` target:** compile + link profile flags + Swift toolchain search paths (Firebase static pods on CI)
223223
- **`RNFB*` pods:** compile-only flags — **no** `-fprofile-instr-generate` on pod `OTHER_LDFLAGS` (breaks `swiftCompatibility56` on CI)
224-
2. **Runtime:** `RNFBTestingConfigureCoverageProfilePath()` at launch → `Documents/coverage.profraw`. Jet `after``RNFBTestingCoverage.flush()`. **No custom URL scheme** (iOS "Open in 'testing'?" dialog blocks Detox).
224+
2. **Runtime:** `RNFBTestingConfigureCoverageProfilePath()` at launch → `Documents/coverage-%m.profraw` (+ `LLVM_PROFILE_FILE`). Jet `after``RNFBTestingCoverage.flush()` (tracked RNFB frameworks, then app). **No custom URL scheme** (iOS "Open in 'testing'?" dialog blocks Detox).
225225
3. **Pull:** Jet exit 0 → `pull-native-coverage.js``simulator_coverage.profraw`. **Fails if missing.** Pull on Jet `close`, not `afterAll` (before Detox teardown).
226226
4. **Export:** `yarn tests:ios:test:process-coverage` / `process-ios-native-coverage.js`:
227227
- exit **1** if no `.profraw`
@@ -232,7 +232,11 @@ reporter: ['lcov', 'html', 'text-summary'],
232232

233233
ObjC + Swift share this. Raw export is mostly Pods/SDK; healthy full run includes ~50–60 `packages/*/ios/**` files among ~2000 entries.
234234

235-
**CocoaPods → SPM:** move same flags to SPM targets; post-test script unchanged.
235+
### SPM + dynamic frameworks
236+
237+
**Tests Podfile default (dynamic):** RNFB pods stay separate `RNFB*.framework` images. Compile-only instrumentation is not enough — those frameworks must **link** the profile runtime (`link_profile: true` for `RNFB*` when `linkage == dynamic`, including `-Wl,-u,___llvm_profile_set_filename` so set_filename is not dead-stripped), flush must dump **each** loaded RNFB image, and `process-ios-native-coverage.js` must pass every `RNFB*.framework` binary as an extra `llvm-cov -object`. App-only export → **`packagesHits=0`**.
238+
239+
**Why per-image flush (not atexit alone):** each dynamic image links its own `clang_rt.profile` copy; `__llvm_profile_write_file` in the app only dumps the app image. `LLVM_PROFILE_FILE=…/coverage-%m.profraw` (set via `setenv` + `RNFBTestingConfigureCoverageProfilePath`) makes atexit dumps unique per image, but Jet pulls `Documents/*.profraw` on Jet **close** — before `terminateApp` — so atexit has not run yet. Detox SIGKILL can also skip atexit. `RNFBTestingCoverageProfile.mm` therefore discovers `RNFB*.framework` images at load via `_dyld_register_func_for_add_image`, resolves each image's local `___llvm_profile_write_file` through `__LINKEDIT`, flushes tracked images on Jet `after`, then writes the app image last (so flush-path counters land in the pulled app profraw). Static linkage still merges RNFB into the app binary (compile-only + app flush). Never put profile **link** flags on third-party/Firebase pods (`swiftCompatibility56`).
236240

237241
# Codecov uploads (CI)
238242

@@ -317,7 +321,7 @@ No `:test-cover-reuse` / `:test-reuse` — stale native risk ([runbook](running-
317321
| Stale profraw uploaded | Re-process without re-e2e | Process deletes profraw; exit 1 if missing next time |
318322
| Stale Android Jacoco / collapsed native % | Re-run `post-e2e-coverage` without fresh e2e (and/or without fresh unit `*.exec`) | Post-e2e deletes `.ec` after report; run `:build``tests:android:unit``:test-cover``:post-e2e-coverage` |
319323
| Coverage numbers suspect (any platform) | Leftover raw artifacts or reuse shortcuts | Full clean cycle per platform; see [Stale coverage data](#stale-coverage-data) |
320-
| No `packages/` hits in iOS export | Wrong binary / not instrumented | Re-run `tests:ios:build` per [running e2e § Rules](running-e2e.md#rules); check Podfile |
324+
| No `packages/` hits in iOS export | Dynamic/SPM multi-image path incomplete | [SPM + dynamic frameworks](#spm--dynamic-frameworks); rebuild `tests:ios:build` `:test-cover`; syslog `tracked profile image` / `flush tracked image` |
321325
| Empty Jacoco XML (~235 B) | AGP 8 path, missing `src/reactnative/java`, no ec/exec | Check post-e2e logs; confirm `jacocoTestReport` not e2e-only task |
322326
| Uploaded e2e-only Jacoco | Wrong report task / path | Codecov must use `jacocoTestReport.xml`, not `jacocoAndroidTestReport.xml` |
323327
| Android ec missing after pass | SIGINT before flush | `[native-coverage] flushing android coverage` in log; `MainApplication` registration |

tests/ios/Podfile

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,13 @@ target 'testing' do
9999
if link_profile
100100
# DT_TOOLCHAIN_DIR (not TOOLCHAIN_DIR) resolves in workspace OTHER_LDFLAGS on CI.
101101
# Explicit -l flags satisfy Firebase static Swift pod autolink when clang/ccache links.
102+
# -Wl,-u forces __llvm_profile_set_filename out of clang_rt.profile so dynamic RNFB
103+
# frameworks can be pointed at coverage-%m.profraw (otherwise it is dead-stripped and
104+
# per-image flush returns -1 / Filename not set).
102105
build_settings['OTHER_LDFLAGS'] = [
103106
'$(inherited)',
104107
'-fprofile-instr-generate',
108+
'-Wl,-u,___llvm_profile_set_filename',
105109
'-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)',
106110
'-L$(SDKROOT)/usr/lib/swift',
107111
'-lswiftCompatibility56',
@@ -138,14 +142,20 @@ target 'testing' do
138142
# Bumps minimum deploy target to ours (which is >12.4): https://github.com/facebook/react-native/issues/34106
139143
# `SWIFT_ENABLE_EXPLICIT_MODULES = 'NO'` is applied automatically for SPM builds
140144
# by `rnfirebase_apply_spm_build_settings` (see packages/app/firebase_spm.rb)
145+
#
146+
# Under static linkage, RNFB object code merges into the app binary — compile-only
147+
# instrumentation is enough (app flush dumps packages/). Under dynamic linkage
148+
# (SPM e2e default), each RNFB*.framework keeps its own counters/runtime and must
149+
# link the profile runtime so flush can dlsym+write per image (%m profraw).
150+
# Never add profile link flags to third-party / Firebase pods — that breaks
151+
# swiftCompatibility56 on CI.
152+
rnfb_link_profile = (linkage.to_s == 'dynamic')
141153
installer.pods_project.targets.each do |target|
142154
target.build_configurations.each do |config|
143155
config.build_settings["GCC_WARN_INHIBIT_ALL_WARNINGS"] = "YES"
144156
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = min_ios_version_supported
145-
# Instrument RNFB pods at compile time only. Do not add profile link flags to
146-
# third-party / Firebase pods — that breaks Swift compatibility library linking on CI.
147157
if target.name.include?('RNFB')
148-
apply_ios_native_coverage.call(config.build_settings, link_profile: false)
158+
apply_ios_native_coverage.call(config.build_settings, link_profile: rnfb_link_profile)
149159
end
150160
end
151161
end

tests/ios/Podfile.lock

Lines changed: 82 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1548,7 +1548,7 @@ PODS:
15481548
- Yoga
15491549
- RNDeviceInfo (15.0.2):
15501550
- React-Core
1551-
- RNFBAnalytics (25.1.0):
1551+
- RNFBAnalytics (26.0.0):
15521552
- DoubleConversion
15531553
- glog
15541554
- hermes-engine
@@ -1570,7 +1570,7 @@ PODS:
15701570
- ReactCommon/turbomodule/core
15711571
- RNFBApp
15721572
- Yoga
1573-
- RNFBApp (25.1.0):
1573+
- RNFBApp (26.0.0):
15741574
- DoubleConversion
15751575
- glog
15761576
- hermes-engine
@@ -1591,7 +1591,7 @@ PODS:
15911591
- ReactCommon/turbomodule/bridging
15921592
- ReactCommon/turbomodule/core
15931593
- Yoga
1594-
- RNFBAppCheck (25.1.0):
1594+
- RNFBAppCheck (26.0.0):
15951595
- DoubleConversion
15961596
- glog
15971597
- hermes-engine
@@ -1613,7 +1613,7 @@ PODS:
16131613
- ReactCommon/turbomodule/core
16141614
- RNFBApp
16151615
- Yoga
1616-
- RNFBAppDistribution (25.1.0):
1616+
- RNFBAppDistribution (26.0.0):
16171617
- DoubleConversion
16181618
- glog
16191619
- hermes-engine
@@ -1635,7 +1635,7 @@ PODS:
16351635
- ReactCommon/turbomodule/core
16361636
- RNFBApp
16371637
- Yoga
1638-
- RNFBAuth (25.1.0):
1638+
- RNFBAuth (26.0.0):
16391639
- DoubleConversion
16401640
- glog
16411641
- hermes-engine
@@ -1657,7 +1657,7 @@ PODS:
16571657
- ReactCommon/turbomodule/core
16581658
- RNFBApp
16591659
- Yoga
1660-
- RNFBCrashlytics (25.1.0):
1660+
- RNFBCrashlytics (26.0.0):
16611661
- DoubleConversion
16621662
- glog
16631663
- hermes-engine
@@ -1679,7 +1679,7 @@ PODS:
16791679
- ReactCommon/turbomodule/core
16801680
- RNFBApp
16811681
- Yoga
1682-
- RNFBDatabase (25.1.0):
1682+
- RNFBDatabase (26.0.0):
16831683
- DoubleConversion
16841684
- glog
16851685
- hermes-engine
@@ -1701,7 +1701,7 @@ PODS:
17011701
- ReactCommon/turbomodule/core
17021702
- RNFBApp
17031703
- Yoga
1704-
- RNFBFirestore (25.1.0):
1704+
- RNFBFirestore (26.0.0):
17051705
- DoubleConversion
17061706
- glog
17071707
- hermes-engine
@@ -1723,7 +1723,7 @@ PODS:
17231723
- ReactCommon/turbomodule/core
17241724
- RNFBApp
17251725
- Yoga
1726-
- RNFBFunctions (25.1.0):
1726+
- RNFBFunctions (26.0.0):
17271727
- DoubleConversion
17281728
- glog
17291729
- hermes-engine
@@ -1745,7 +1745,7 @@ PODS:
17451745
- ReactCommon/turbomodule/core
17461746
- RNFBApp
17471747
- Yoga
1748-
- RNFBInAppMessaging (25.1.0):
1748+
- RNFBInAppMessaging (26.0.0):
17491749
- DoubleConversion
17501750
- glog
17511751
- hermes-engine
@@ -1767,7 +1767,7 @@ PODS:
17671767
- ReactCommon/turbomodule/core
17681768
- RNFBApp
17691769
- Yoga
1770-
- RNFBInstallations (25.1.0):
1770+
- RNFBInstallations (26.0.0):
17711771
- DoubleConversion
17721772
- glog
17731773
- hermes-engine
@@ -1789,7 +1789,7 @@ PODS:
17891789
- ReactCommon/turbomodule/core
17901790
- RNFBApp
17911791
- Yoga
1792-
- RNFBMessaging (25.1.0):
1792+
- RNFBMessaging (26.0.0):
17931793
- DoubleConversion
17941794
- glog
17951795
- hermes-engine
@@ -1811,7 +1811,7 @@ PODS:
18111811
- ReactCommon/turbomodule/core
18121812
- RNFBApp
18131813
- Yoga
1814-
- RNFBML (25.1.0):
1814+
- RNFBML (26.0.0):
18151815
- DoubleConversion
18161816
- glog
18171817
- hermes-engine
@@ -1833,7 +1833,7 @@ PODS:
18331833
- ReactCommon/turbomodule/core
18341834
- RNFBApp
18351835
- Yoga
1836-
- RNFBPerf (25.1.0):
1836+
- RNFBPerf (26.0.0):
18371837
- DoubleConversion
18381838
- glog
18391839
- hermes-engine
@@ -1855,7 +1855,7 @@ PODS:
18551855
- ReactCommon/turbomodule/core
18561856
- RNFBApp
18571857
- Yoga
1858-
- RNFBRemoteConfig (25.1.0):
1858+
- RNFBRemoteConfig (26.0.0):
18591859
- DoubleConversion
18601860
- glog
18611861
- hermes-engine
@@ -1877,7 +1877,7 @@ PODS:
18771877
- ReactCommon/turbomodule/core
18781878
- RNFBApp
18791879
- Yoga
1880-
- RNFBStorage (25.1.0):
1880+
- RNFBStorage (26.0.0):
18811881
- DoubleConversion
18821882
- glog
18831883
- hermes-engine
@@ -2173,85 +2173,85 @@ SPEC CHECKSUMS:
21732173
fmt: 530618a01105dae0fa3a2f27c81ae11fa8f67eac
21742174
glog: eb93e2f488219332457c3c4eafd2738ddc7e80b8
21752175
hermes-engine: b5c9cfbe6415f1b0b24759f2942c8f33e9af6347
2176-
RCT-Folly: d533c1d21249a85e67a4be97f4d793665de0222e
2176+
RCT-Folly: 46b84c7990d4a373ccef77134c23c763ba5cf3a0
21772177
RCTDeprecation: cf39863b43871c2031050605fb884019b6193910
21782178
RCTRequired: 8fdd66f4a97f352b66f38cfef13fc11b12d2c884
21792179
RCTTypeSafety: c9c9e64389bc545fc137030615b387ef1654dcee
21802180
React: 14a80ea4f13387cfdaa4250b46fbfe19754c220c
21812181
React-callinvoker: fed1dad5d6cf992c7b4b5fdbf1bf67fe2e8fb6c5
2182-
React-Core: f703e7a56fcedc3e959b8b7899995e57fd58539a
2183-
React-CoreModules: 945ed8a2827720af6852b97c8ddd2ac2ceb04157
2184-
React-cxxreact: 26c744a099a29f2f995f9bb4b755d8ecbf7c5392
2182+
React-Core: 3c803e7f3be6fa68e3dabcac283a5a5f87340a60
2183+
React-CoreModules: 17ac445c8d86fdbb1dbf149e05d6c07ed5cc0080
2184+
React-cxxreact: 425bf54ebddab5d65f76e06ac531d35c9be0e671
21852185
React-debug: a665bbe67eb786b7a7a815ce1b7212b3f9fa962c
2186-
React-defaultsnativemodule: 7e4a2c2b13ec2943f2f3b8adec32130443909de6
2187-
React-domnativemodule: dffaa482180243bd1e2b7fba329fd4adc12a2445
2188-
React-Fabric: 37160a25edcb01c72b66562a2ad200667609412d
2189-
React-FabricComponents: 8c69a05e36b7f73341e95011a5e9571e92c67cf2
2190-
React-FabricImage: c8870f298331e4c2cf9c3114265aef27d9bb3ba2
2186+
React-defaultsnativemodule: 8f0bea8d0d3434aa98957302f2a8741600781edd
2187+
React-domnativemodule: 889d261cc9691b91063a1c1d89d408e19903923d
2188+
React-Fabric: af1700943aed47ada6c0cc23da4e33cea8d595e5
2189+
React-FabricComponents: b9cdcb82a8613a476a525289801c9c51fcf3a50c
2190+
React-FabricImage: f14bd75c4d09143a657383bcee73186907ee0339
21912191
React-featureflags: 55800b546a28b63a8a0f419e1a45871d43523d32
2192-
React-featureflagsnativemodule: a0ea334fdd3342a2e4dc05085c3e7653e16839d3
2193-
React-graphics: 705f31502711f1214ef58274162a6d61ec8c1191
2194-
React-hermes: 1ee5a6b835bc939b7aba500cb716a1095b3e0959
2195-
React-idlecallbacksnativemodule: 74d091304aad1ceb0c5b86e5dec14372fcdc0f34
2196-
React-ImageManager: 6b2a95469d9a126f14410bbe10fb7378d37ed0e0
2197-
React-jserrorhandler: 2643140639cbf047bf45f5c1a3ea95b04d748582
2198-
React-jsi: 0810ff01e7f73a1cfba83d176e21c29302f6f3aa
2199-
React-jsiexecutor: 70f6865d195eba534f39ac9504a9aa178e5389f7
2200-
React-jsinspector: 6d768dfb189027f7ff2161be31ccd69215426ded
2201-
React-jsinspectortracing: a6a70eb5c9d767d99391d0373330a7239fb6f9d0
2202-
React-jsitracing: 69280997c7a80ac0af62b95f01a241d68581fb52
2203-
React-logger: e6c3c1b55c18cc1b945b647ff9ada53e0e710b50
2204-
React-Mapbuffer: 57bea44149376ecf1241dd9f02a6222adab43e57
2205-
React-microtasksnativemodule: 2739fc8a8cb99486820c933ce560791c93be5337
2206-
React-NativeModulesApple: 4849912ee050e6ae346f5789bd631570580d8b84
2207-
React-perflogger: 069d41f741187be92ed46c6ac67add03b99f3166
2208-
React-performancetimeline: eda794c5007eb6834e13bc6026a879b5f6d49c74
2192+
React-featureflagsnativemodule: b200bca78e00f9e5c7cd5a1c9f2957223fcfa33a
2193+
React-graphics: 464698dcbb6e57ae828e8b1bd666a22176dc2790
2194+
React-hermes: 12bd452081482a5c40766671b06bf80c15f4d454
2195+
React-idlecallbacksnativemodule: dc10ee2e5ba5ae7ad56aa093aedda582345bce16
2196+
React-ImageManager: 08592583c7737aec2b2c2a12e7c4f0ad763ae5c4
2197+
React-jserrorhandler: eede06f57f67c8d3978ff1a9c78107aea5cbdf45
2198+
React-jsi: ff84dfaf45d058e317db844f174292cf61ac1010
2199+
React-jsiexecutor: 96e4df91d8cb172941d71cfb9179fc27196cdc6b
2200+
React-jsinspector: 7a7e033c64cc40e6a1d6daf7fad4827bc1e7dd12
2201+
React-jsinspectortracing: 77f4d18502af6e7599e77390b35f04f02814f7ce
2202+
React-jsitracing: 0608ea7ee711370d42fdd2b4a474dbced68dd275
2203+
React-logger: 8d00d3d794041a77bd890158353361e2709b04c1
2204+
React-Mapbuffer: 45ca4d30efe99834a8cd8d98f803c94766db534f
2205+
React-microtasksnativemodule: b5901a0b15f92ce0666ee5131eb8ab646f1d5a27
2206+
React-NativeModulesApple: 7a9ec626a1852d444d0e699b016dc55a064b7569
2207+
React-perflogger: d06f0fd0727356651a5535f6d717130187aeb667
2208+
React-performancetimeline: c397114f2c025aa73412a9f21e021b08127fe820
22092209
React-RCTActionSheet: a078d5008632fed31b0024c420ee02e612b317d5
2210-
React-RCTAnimation: 82e31d191af4175e0c2df5bdac2c8569a5f3ab54
2211-
React-RCTAppDelegate: a5c1ff79f5987462b4f62b27387459ba84012439
2212-
React-RCTBlob: 605c283c68fee9e095206fefbfe69d0d23df1a00
2213-
React-RCTFabric: 56b946204edb5d563885b3b045bdacbb387b27e7
2214-
React-RCTFBReactNativeSpec: 8392ef66ad156cfa848546859bbff3b5e8a09458
2215-
React-RCTImage: 10fad63f1bb8adbd519c4c2ef6bec3c0d95fdd32
2216-
React-RCTLinking: 3843288a44dc33ec083c843f3ff31dd7d96ece41
2217-
React-RCTNetwork: f237299bda8bbd56c4d01d2825110e40b75c438a
2218-
React-RCTSettings: c24ce1ee96c9b001ff5059ddd53412a20b7d5e71
2219-
React-RCTText: d97cfb9c89b06de9530577dd43f178c47ea07853
2220-
React-RCTVibration: 2fcefee071a4f0d416e4368416bb073ea6893451
2210+
React-RCTAnimation: b197cc109a896c6ce23981e02e317cfc055f6fda
2211+
React-RCTAppDelegate: f7f1d7362256b7c142d9ab49f980df488101f869
2212+
React-RCTBlob: d418d0af4ac208354933ffce569cf62144440d97
2213+
React-RCTFabric: 8cdcde7157a22aac04dfeb579dfc3a1141446846
2214+
React-RCTFBReactNativeSpec: c3a78cb9f2a98146443f1b732a4f21b2ce736abd
2215+
React-RCTImage: 7a3d9d67161c714fa4d9b93820da39a266d0f1ff
2216+
React-RCTLinking: f860b917500cd3974235a48d5b199a74a4ed6c26
2217+
React-RCTNetwork: 6a984ab1b5a81d17a2df6cc02c24b249fb055deb
2218+
React-RCTSettings: e9a39068d8b60d78a5271dcb68f6ea7f59569cb2
2219+
React-RCTText: 44457242238664a5ad69f06ec7a5f273a6967711
2220+
React-RCTVibration: f448ad875c60b2ddc5fc5b06d3f5e2dfc3f18c09
22212221
React-rendererconsistency: c9f31b6d55877c5d49d25d69270b89f9cb208e26
2222-
React-rendererdebug: 1de2a6279dbd8a149522ec8ac683f80a2b144995
2222+
React-rendererdebug: 61786b94758c96379bb4bf94978e1cd13c75bf54
22232223
React-rncore: 90e637179a4ce46643d445a9ef16f53af02a8d25
2224-
React-RuntimeApple: 713b7c24b3abed07fa39766b35deaabd679ba48e
2225-
React-RuntimeCore: 236d704919077fd3393a26fd0ecbaecc081ec94f
2224+
React-RuntimeApple: 3df87718b4a8e438b4a02d1d7d47677dfcab35a5
2225+
React-RuntimeCore: e188aa1b0fe0450f3a4e6098f2bb8d4b27c147cf
22262226
React-runtimeexecutor: 2de0d537fc6d5b4a7074587b4459ea331c7e5715
2227-
React-RuntimeHermes: 3e87ad8c5160c976addacd679774a5e4fdb3c4b4
2228-
React-runtimescheduler: bafaf0af0f68bd761d63ff4de3bf13e391820f79
2227+
React-RuntimeHermes: 5aa429111da4c0a62d94b37ad5b5144deb8f49d0
2228+
React-runtimescheduler: c3738ed7f0ba2e51b1612ec8d6cbe104c2b9b59a
22292229
React-timing: 7ad7dc61dfc93ceb4ec2b3e6d1a6ad9ad3652fe0
2230-
React-utils: cf358d29b6802cca3d1bec20a939f2f5d50d40ba
2231-
ReactAppDependencyProvider: ad88c80e06f29900f2e6f9ccf1d4cb0bfc3e1bbc
2232-
ReactCodegen: 69c7aec61821e1860aaaf959189218ecca40e811
2233-
ReactCommon: 0df51c56138bd6f6bfd027e91eda0e3a4e3233eb
2234-
RNCAsyncStorage: 481acf401089f312189e100815088ea5dafc583c
2235-
RNDeviceInfo: d79872e11c8e9c4de0d65b0ee6e0cee719f37fea
2236-
RNFBAnalytics: 3b213b559edf8f62270af58c799b517f9abd1d6a
2237-
RNFBApp: dd448276ce0a9ef8f3bcb1a66cc588cd24197da0
2238-
RNFBAppCheck: c943ba51cac50bfdbe1aa5fab3b1b97c4ac8200e
2239-
RNFBAppDistribution: f155c1bd3fa4d2ecd4930757101e854f8cdc0c50
2240-
RNFBAuth: 74683b7280b7ce1cf2365cb836e8f63fdef3a192
2241-
RNFBCrashlytics: d4f5b462f6a8de12831222a084e13afc3261e894
2242-
RNFBDatabase: 6f6da04ca8c7fb79c46dd69245c734e2608db2d8
2243-
RNFBFirestore: be9fbe00e34e8f2cb72d091ecf28f52b9d571ccc
2244-
RNFBFunctions: 9580d17b228a22b2bda36b5f03e882d596b1d1e0
2245-
RNFBInAppMessaging: 4d726ea17238e443484d513667d8c1a4e82bb7cd
2246-
RNFBInstallations: de53e4622872a7e9daa21fc50a84502aacb00f16
2247-
RNFBMessaging: 08fe3a810da9a2581e9cd540d7ea329c0ed072f4
2248-
RNFBML: 01095dc4aca9b6bd3806242db465059f8c3273a4
2249-
RNFBPerf: a622416435e2a81408edb6d7352cc44cdc1cca23
2250-
RNFBRemoteConfig: ab933ea83779fbb4b9de2f9789f8587e85ce8a76
2251-
RNFBStorage: 90ae11c722b8c29d1d9ddf6ca26aaea61f287c2c
2230+
React-utils: d6a3bec920c7fa710e8fb5b7c28d81fe54be8c75
2231+
ReactAppDependencyProvider: 5df090fa3cbfc923c6bd0595b64d5ef6d89f7134
2232+
ReactCodegen: 0c213020a601c6adda74f8826629bff9c6c408d3
2233+
ReactCommon: c18c9308463e582898abcec12ffbd2df2b7e8fdd
2234+
RNCAsyncStorage: 6a8127b6987dc9fbce778669b252b14c8355c7ce
2235+
RNDeviceInfo: 4c852998208b60dc192ae3529e5867817719ad1e
2236+
RNFBAnalytics: 4623f363587c8d8ce072442950f5dcb79365f9f5
2237+
RNFBApp: 0dd80e523680798d7781cc31f3fdb54aabcb02dc
2238+
RNFBAppCheck: d9f4da16fdc8cc64da09b2f8c55ab3a6478fb40d
2239+
RNFBAppDistribution: 2c3d5329526b8a9eeb9ad0f363716035ca6c5493
2240+
RNFBAuth: d7d29bf520ff8d7493005c7d182fb1b2e77bcacf
2241+
RNFBCrashlytics: 2715f512a938268af6e6d4f2bfe2af96b123746c
2242+
RNFBDatabase: 4ccf51054343c2bdfd2eee8d5ab3714890309ab6
2243+
RNFBFirestore: 53fd45b2d3388b7396fb0d88ae2b9c0738954b6d
2244+
RNFBFunctions: ef7c16799af965864fb83763d99aed3242fb382a
2245+
RNFBInAppMessaging: 1d3d75bd9be58c595e1e611babc95a27261af826
2246+
RNFBInstallations: 30dbb1fc1a1e6dc80b338d4728914c5cc8297597
2247+
RNFBMessaging: 86547e1b9c846864c07eb2973abbf97d4e043472
2248+
RNFBML: 33f18e8833f72550bb4111d3b83355895bb8e011
2249+
RNFBPerf: b9bf1dadc72f3a2b376683b6f9134bbbe6cbdb52
2250+
RNFBRemoteConfig: 6efc1dc089910a5c6a31573bd8fa1b6ad83fddf8
2251+
RNFBStorage: 315e99bf3f92ce417e61c5ddb5d6907117e446a1
22522252
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
2253-
Yoga: 66a9fd80007d5d5fce19d1676ce17b4d5e16e9b1
2253+
Yoga: 3bb1ee33b5133befbd33872601fa46efdd48e841
22542254

2255-
PODFILE CHECKSUM: 25d3a9582c5de8e54e96c491aa00ba4f74effeff
2255+
PODFILE CHECKSUM: c7c3403f600486b94ccd32f95d26f1efcd724061
22562256

22572257
COCOAPODS: 1.16.2

tests/ios/testing.xcodeproj/project.pbxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@
465465
OTHER_LDFLAGS = (
466466
"$(inherited)",
467467
"-fprofile-instr-generate",
468+
"-Wl,-u,___llvm_profile_set_filename",
468469
"-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
469470
"-L$(SDKROOT)/usr/lib/swift",
470471
"-lswiftCompatibility56",
@@ -523,6 +524,7 @@
523524
OTHER_LDFLAGS = (
524525
"$(inherited)",
525526
"-fprofile-instr-generate",
527+
"-Wl,-u,___llvm_profile_set_filename",
526528
"-L$(DT_TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
527529
"-L$(SDKROOT)/usr/lib/swift",
528530
"-lswiftCompatibility56",

0 commit comments

Comments
 (0)