🔥 [iOS][Crashlytics] dSYM input uses TARGET_NAME when product name differs; pod install restores incorrect path
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Issue
The generated iOS Crashlytics build phase uses TARGET_NAME for the dSYM DWARF filename. When the target name differs from the product/executable name, the input points to a nonexistent file. Manually correcting it in Xcode is temporary: pod install regenerates the phase and restores TARGET_NAME. Regeneration is expected; the incorrect generated filename is the bug.
Reproduced with RNFirebase 26.4.0. The same input is present on main:
https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/react-native.config.js
Steps to reproduce
- Use a CocoaPods-based React Native iOS app with RNFirebase app and Crashlytics 26.4.0.
- Set target name to
ExampleApp, PRODUCT_NAME toExample Development, and leave EXECUTABLE_NAME at its default$(PRODUCT_NAME). - Run
pod install. - Inspect Input Files in
[RNFB] Crashlytics Configuration:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
The dSYM contains Contents/Resources/DWARF/Example Development, but this input resolves to Contents/Resources/DWARF/ExampleApp.
- Change TARGET_NAME to PRODUCT_NAME in that input in Xcode.
- Run
pod installagain: TARGET_NAME is restored.
Verified in an existing application; names above are sanitized examples. No standalone reproduction repository is attached.
Expected behavior / proposed fix
Generate a path matching the DWARF executable filename. Firebase documents PRODUCT_NAME:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
https://firebase.google.com/docs/crashlytics/ios/get-deobfuscated-reports
EXECUTABLE_NAME could also be considered for custom executable names.
Workaround and scope
An application-level react-native.config.js override of this dependency’s iOS scriptPhases, preserving the phase settings and replacing TARGET_NAME with PRODUCT_NAME, survives pod install. Verified without a duplicate phase.
This report establishes an incorrect declared input, not that every affected archive fails to upload symbols; impact can depend on Xcode dependency analysis and sandbox settings.
Historical context: https://github.com/invertase/react-native-firebase/pull/4520
Project Files
Relevant sanitized configuration only.
Javascript
package.json:
{
"dependencies": {
"react": "19.2.3",
"react-native": "0.87.1",
"@react-native-firebase/app": "26.4.0",
"@react-native-firebase/crashlytics": "26.4.0"
}
}
firebase.json for react-native-firebase v6:
Not relevant to generation of build phase inputs.
iOS
ios/Podfile:
- I am not using Pods
- I am using Pods
Static frameworks; RNFirebase SPM disabled ($RNFirebaseDisableSPM = true). Private application-specific Podfile contents omitted.
AppDelegate.m:
Not relevant to generated build phase inputs.
Android
Not applicable: iOS build phase generation.
Have you converted to AndroidX?
Not applicable.
android/build.gradle:
Not applicable.
android/app/build.gradle:
Not applicable.
android/settings.gradle:
Not applicable.
MainApplication.java:
Not applicable.
AndroidManifest.xml:
Not applicable.
Environment
Relevant versions (not a full react-native info dump):
-
React Native: 0.87.1
-
React: 19.2.3
-
RNFirebase app / Crashlytics: 26.4.0
-
FirebaseCrashlytics iOS SDK: 12.18.0
-
CocoaPods: 1.16.2
-
Xcode: 26.4.1 (17E202)
-
Node.js: 22.22.3
-
Yarn: 3.6.4
-
TypeScript: 6.0.3
-
Platform experiencing the issue: iOS
-
Firebase module affected: Crashlytics
-
Using TypeScript? Yes.
- Lingua principale
- TypeScript
- Stelle
- 12.3k
- Fork
- 2.3k
- Merge medio
- 1g 16h
- PR unite (30g)
- 23
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di invertase/react-native-firebase
-
Needs Attention type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
invertase/react-native-firebase#9414 ·
I maintainer di solito rispondono entro 1 giorno
-
platform: android type: enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
invertase/react-native-firebase#9399 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[🐛] Firestore pipelines: Bytes and VectorValue constants are sent as their private fieldsForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaimpact: web-implementation platform: all plugin: firestore type: bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
invertase/react-native-firebase#9413 ·
I maintainer di solito rispondono entro 1 giorno
-
[🐛] Firestore pipelines: Timestamp (and Date) constants are sent as plain mapsForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaimpact: web-implementation platform: all plugin: firestore type: bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
invertase/react-native-firebase#9412 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
invertase/react-native-firebase#9408 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di invertase/react-native-firebase
Issue simili
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
awslabs/visual-asset-management-system#937 ·
I maintainer di solito rispondono entro 1 giorno
-
t0ggles
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
nolimits4web/swiper#8255 · 1 commento ·
I maintainer di solito rispondono entro 15 giorni
-
render: --variables-file (and --variables <path>) fails with "io.readFile is not a function" since 0.8.212Forse già presa @miguel-heygen l’ha presa oggi. Apertabug triage/needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
heygen-com/hyperframes#6830 ·
I maintainer di solito rispondono entro 1 giorno
-
bug launch local use
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
account: profile bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 5 giorni