New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RESOLVED we think] 🔥 Crashlytics 8.0.1 not collecting on iOS #3879
Comments
To anyone who decides to investigate and fix this: this also might be a good opportunity to fix #3645 |
Fixing this is obviously important but I think it's vital to define what the desired end state is
It's a little bit intricate to get right but shouldn't be too hard to clean up if someone could post a PR? |
From experience using the version prior to the version bump "@react-native-firebase/crashlytics": "^7.1.7",, and according to the docs here https://rnfirebase.io/crashlytics/usage
|
@SunilChiluvuri great research, thank you posting the exact previous state for use here I want to consolidate everything about RNFB-Crashlytics v8 init to one thread, here, so I am copying excellent comments from @pehagg here:
So we know the previous state, and we have some links into the SDK methods - we are close to knowing what to do, and I think the existing config infrastructure exists but just is not hooked up correctly, it might be possible for someone to give it a try in a PR? |
Can we pin this issue for a little bit? I think it's pretty relevant, and I don't want to to get buried in newer issues. |
A good idea @andersonaddo I tried to alter the title to what I think is descriptive for people, but I'm always open to suggestion |
Hi guys, react-native-friebase noob here. Do you know how to enable Thanks alot |
@davidvalari it's very easy, just create a {
"react-native": {
"crashlytics_disable_auto_disabler": true
}
} |
This did not work for me for iOS, unfortunately. |
Thanks @elledienne, seems like what I've did was correct. It didn't work for me as well when I did this earlier though. |
Hello here, i've got the same issue on my project (on ios only).
Native logs seems ok too:
But i see nothing on the dashboard package.json:
Edit: after a deploy on alpha production it works, so the the problem seems to be only in debug mode. |
@airowe @davidvalari I had to do a I'm not very familiar with this library yet, so it's possible it was just coincidence/caching and it was really the rebuild of the project that got that change to take, but figured it was worth mentioning. Like others, I was having trouble getting Crashlytics to recognize the SDK was installed properly during onboarding because of this. Once the configuration change took, I was able to see crash reports actually submitting in the logs. Onboarding onto Crashlytics seems like where this has the biggest impact since it kind of stops you in tracks and makes you question if you've done something wrong with setup. Since Happy to create that PR if that sounds like a decent enough workaround while the greater mysteries of what should the defaults for these settings be are considered further. |
I think it was the rebuild that did it, if I understand correctly (I'm iffy here) the build generates plist entries based on firebase.json - but I haven't inspected the code to verify so big grain of salt Mostly replying to say that any PRs for documentation are most welcome! Especially from new users with fresh eyes, you know best what is hard to understand... |
Ah yeah, looks like the [CP-User][RNFB] Core Configuration] build phase from Just did a couple more tests and this time around the config seems to take without issue as long as the build phase is actually successful. The The build phase on the other hand looks like it works successfully even if it couldn't actually parse the json file. There is a small note in the logs about the json parse error, but doesn't actually error out the script and I guess it winds up just using defaults which is as if And yeah, I'll take a pass at some doc changes while this experience is fresh in memory. The other parts of it that tripped me up was that I was able to get through Android onboarding w/o the additional config and that |
That in particular sounds like a bug - the exit code probably shouldn't be ignored 🤔 |
That would be |
Nevermind, this seems to exist. I misread the key. |
https://invertase.canny.io/react-native-firebase/p/verbose-logging-mode-for-crashlytics Just so it doesn't get lost |
I have doubts, i have this problem too on iOS, on Android it just works fine. This problem is only on debug/developing phase? Im trying to active crashlytics, but i can't, the crashlytics().crash(); closes the app, but is not sendeed to the crashlytics panel. I tested it on a simulator, in a real device debug/release build (run from xCode and stoped and run without xcode) and nothing works.
Its my first time using this library, i should try a old version? |
@VincenDev going to older versions will likely not help you. Last resort there. Have you created an empty firebase.json ? There are quite a few things documented here as things to try / workarounds to engage. That one affects which entries are injected into the plist file and may cause crashes not to log. Please note some (including myself) are reporting with no problem, on the most up to date versions, so it can work, just that for some set of edge cases there are definitely problems - that's what we're working through here. |
Yes @csouth3 ! we'll look at what the defaults should be (to align with upstream where possible, and be consistent cross-platform most of all) and document it now that it seems to actually work. Getting it working consistently was step 1, now documentation to save future devs the pain is next |
I just spent ages trying to work out why my crashlytics stopped sending in iOS, it turned out it was to do with this issue, but working out what was going on took ages. It would have helped a lot if I could have turned on a logging mode so that I could see more info about crashes that were recorded and if they were sent or not. It would also be really useful to see something like not sent because logging is turned off by default Feature request for verbose logging below |
I have enough time to look at the defaults and harmonize them + docs, but I likely won't have enough time (or at least won't for quite a while) to do a verbose logging mode, but I agree that sounds like an excellent idea. If anyone proposed a PR for that, it would be fantastic - there's nothing in progress or concretely planned at the moment so there would not be duplication of effort if someone gave it a shot |
After a deep investigation we found that for iOS the [CP-User] [RNFB] Core Configuration script automatically set the
Since the script is also executed in release mode the problem also affect release builds like said by @csouth3.
|
FWIW, I'm on 8.3.4 and I'm still seeing this issue. |
Wow @machouz - great work! Thank you so much for doing this deep dive and helping all of us understand why this error is persisting!!! |
I'm on 8.4.2 and still have issues |
@MaxToyberman "issues" -> be very, very specific. Open a new issue and provide all the relevant information please |
Sorry to drag up this issue but, we've been using RNFB (huge thanks btw) for a fairly long while and to my knowledge have never done anything specific to upload dSYSMs, is this a recent thing that this is now required? Theres no mention of this being a requirement in the crashlytics docs or how best to do it (i see above you've suggested to add as a step in a fastlane build) |
Super detailed I'm sure will help if it comes to it, as it stands im not seeing errors come through to the console, I've followed all the steps above (aside from the dsyms upload) in the console I see a bit warning saying that its not showing a few crashes due to missing dsyms but its from super old versions of our app - so seemingly not whats causing the issue? don't see anything in pod install logs, app install logs or the device logs |
This is where the magic happens: https://github.com/invertase/react-native-firebase/blob/cad58e178b43dea461e17fa4a0a3fecd507ba68a/packages/crashlytics/ios_config.sh & https://github.com/invertase/react-native-firebase/blob/cad58e178b43dea461e17fa4a0a3fecd507ba68a/packages/crashlytics/react-native.config.js |
Yeah looks like its doing the business:
and then device run logs
|
@rossjohnsonMP When you have bitcode enabled, Apple recompiles your app on their servers when you push a new app version. So the dsyms you had locally doesn't match the app that is used by users. That's why in this case you need to download the dsyms from Apple's servers and upload them to Crashlytics. Fastlane has some actions that makes the process very easy. |
@Minishlink appreciate the explanation but theres absolutely no mention of needing to do this in the docs and we've been using RNFB for over 18 months without having to do this - I thought as mentioned by @mars-lan the build script that runs also adding to all of this, I don't see any crash reports sent locally or through a version on testflight |
@rossjohnsonMP you may have unreasonable expectations. If you have just upgraded across major versions of crashlytics you'll note that we switched from the old Fabric-based Crashlytics - in response to upstream switch - to Firebase Crashlytics. You'll understand that this is a volunteer project and we did our best during this switch but it is not perfect as documented above. When I read your comment, I read a lot of explanation of expectations but I do not read anything confirming that you have performed the steps specified in order to make sure the new Firebase Crashlytics-based implementation will work. Immediately prior to issue close here this was stated: #3879 (comment) Please report back how it goes when you perform those steps. There is pending work to make fewer (or none) of those steps necessary. If you'd like to propose a PR that corrects the assumption in the run script you linked that the firebase.json will exist, that would be great! If you'd like to propose a PR that makes it so that firebase logs events in debug mode by default that would be great! |
im still experiencing this issue, im using: @react-native-firebase/app@8.3.0 $FirebaseSDKVersion = '6.32.2' as well in my podfile i have also added firebase.json with these configs: to force crash the app, i tried adding an unimported component, the app crashed successfully but still not reflecting in the dashboard *note that the app was not released thru testflight and production, i just generated an .ipa file and installed on a real device |
Hi, i'm trying to configure Crashlytics with iOS and read in some places about upload dSYMS, i'm not sure how to do this and i can't find any info about that. Can anyone help me with this? Thanks! |
@kale1d please read the above comments carefully, especially https://stackoverflow.com/questions/54577202/how-to-run-upload-symbols-to-upload-dsyms-as-a-part-of-xcode-build-process/55796619#55796619 |
I was also facing the same issue. I was not receiving the Crash reports on the Firebase Console. After spending 2 days for finding the root cause of the problem, this worked at the end 👍 :
|
I recently upgraded our react native firebase libraries and unlike the other libraries I can't get crashlytics to register crashes in the firebase console. Issue only in ios, android works fine. What i've tried so far:
Unsure how to proceed from here. What do you guys suggest? Is there anymore logging I could enable? |
That's a strong indicator something is wrong. What? I'm not sure, it appears you are doing everything correctly. I can only recommend reaching in to node_modules and adding some output around the crash test function, or trying some of the other functions. Before doing that you might try it in release mode, and/or try a javascript-level crash (in release mode so you don't get caught in redbox) to see what's happening |
I was able to locate the problem after taking a closer look at the native crashlytics logs. I was using the deprecated |
In my case, all reports was blocked by VPN |
If by any chance someone's still having problems with In my case, it was using my "firebase.json" inside my firebase project folder (even though I had the correct one at the root of my project). I accidentally fixed it while pasting the firebase.json inside the ios/ folder. So if you're having trouble with this even after setting |
Issue
In the latest version of Crashlytics, in iOS, the automatic collection of data is disabled by default - even though it's not specified in the documentation - and there is no way (as far as I can see) to enable it beside using the property
crashlytics_disable_auto_disabler
, which is available in but undocumented (# config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes usful
, line https://github.com/invertase/react-native-firebase/pull/3580/files#diff-da2d1e9c0593b79df5dbb23ce293a7b4R97).Setting
crashlytics_disable_auto_disabler
solves the problem but it prevents from automatically enabling/disabling the data collection based on the environment which was the behavior in the previous version (enabled in prod, disabled in debug).I believe the issue is caused by this (https://github.com/Aure77/react-native-firebase/blob/65c9edd32ab9c7c65f7ea9b6918838f6405e21ea/packages/app/ios_config.sh#L99) block of code where we set
FirebaseCrashlyticsCollectionEnabled
to 'NO`Project Files
iOS
Click To Expand
ios/Podfile
:AppDelegate.m
:// N/A
Android
Click To Expand
Have you converted to AndroidX?
android/gradle.settings
jetifier=true
for Android compatibility?jetifier
for react-native compatibility?android/build.gradle
:// N/A
android/app/build.gradle
:// N/A
android/settings.gradle
:// N/A
MainApplication.java
:// N/A
AndroidManifest.xml
:<!-- N/A -->
Environment
Click To Expand
react-native info
output:react-native-firebase
version you're using that has this issue:8.0.0
Firebase
module(s) you're using that has the issue:Crashlytics
TypeScript
?N
Expo
?N
React Native Firebase
andInvertase
on Twitter for updates on the library.The text was updated successfully, but these errors were encountered: