-
Notifications
You must be signed in to change notification settings - Fork 6
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
[ABW-2263] Crash reporting setup #632
Conversation
3617bc2
to
0032191
Compare
4692429
to
d38ab3e
Compare
...in/java/com/babylon/wallet/android/presentation/settings/appsettings/AppSettingsViewModel.kt
Outdated
Show resolved
Hide resolved
if (enabled) { | ||
Firebase.crashlytics.deleteUnsentReports() | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain this a bit? Should we also delete unsent reports when disabling crash reporting or not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Even when you have disabled sending reports to crashlytics, they are stored in local database until sharing crashes is enabled. And we don't want to send anything from the period when user had crash reporting turned off. So we delete all the reports just before enabling sending them, so that only crashes that happen when you have reports on will be sent
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice job!
I would suggest adding google-services.json to .gitignore as we do with release keystore since we will not save it into git, so as not to accidentally commit it.
@@ -880,4 +880,5 @@ You can always change the guarantee from this default in each transaction.</stri | |||
<string name="factorSources_kind_offDeviceMnemonic">Seed phrase</string> | |||
<string name="factorSources_kind_trustedContact">Third-party</string> | |||
<string name="factorSources_kind_securityQuestions">Security Questions</string> | |||
<string name="appSettings_crashReporting_title">Crash Reporting</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't forget to add it in Crowdin
It is already there, and google-services.json is added to 1password and to build setup already |
SonarCloud Quality Gate failed. 0 Bugs 0.0% Coverage Catch issues before they fail your Quality Gate with our IDE extension SonarLint |
Ahh hadn't notice that. Perfect 👌 |
Just adding a comment here as a reminder to log the IOException in EncryptedPreferencesManager so as to find out what devices cause the manager to fail upon initial request. |
9ed38e5
to
ae68529
Compare
Quality Gate failedFailed conditions 0.0% Coverage on New Code (required ≥ 40%) |
28400fc
to
8ff29bc
Compare
b27f5b0
to
2ee678a
Compare
Quality Gate failedFailed conditions 2.1% Coverage on New Code (required ≥ 40%) |
@@ -56,6 +58,7 @@ android { | |||
versionCode 27 | |||
versionName "1.3.0" | |||
buildConfigField "boolean", "DEBUG_MODE", "true" | |||
buildConfigField "boolean", "CRASH_REPORTING_AVAILABLE", "false" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"enabled"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we had discussion about this. This controls if switch to turn it on is visible in settings, not if it is enabled
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh ok thanks!
Description
Do not merge until we get green light to proceed.
Crash reporting setup is available only in
debugAlpha
andrelease
build types. By default user is opted-out, it can be enabled in App Settings.Notes:
google-services.json
from wallet firebase console and place it in app folderKEY_CRASH_REPORTING_ENABLED
What is shared with Crashlytics other then crash stacktrace
According to terms and conditions:
As you can see some shared data categories are clear, and some are not very precise describing what exatly
How to test
To test it you would need to build debugAlpha/release or switch build.gradle crash reporting flag for debug build to
true
, place code that will crash the app somewhere and try that with crash reporting enabled/disabled, to verify if crashes are sent (or not sent) to specific project in firebase console. Propagation time that I observed was fast, less then a minute.Screenshot
Example image of crash report
Video
Short video with verbal explanation how this is supposed to work
Nagranie.z.ekranu.2023-11-8.o.09.57.43.mov
PR submission checklist