-
Notifications
You must be signed in to change notification settings - Fork 4k
feat(firebase_crashlytics): rework #3420
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
Conversation
Co-authored-by: Michael Bui <[email protected]> Co-authored-by: Jason Parrott <[email protected]> Co-authored-by: Axel Ogereau-Peltier <[email protected]> Co-authored-by: Salakar <[email protected]> Co-authored-by: Greg Hesp <[email protected]> Co-authored-by: Kirsty Williams <[email protected]> Co-authored-by: Helena Ford <[email protected]>
Tagging in everyone from the previous PR for a final review pass: |
If it helps testing this out before we merge, I can publish a dev release. Let me know. |
@Salakar a dev release would help ✌🏼 |
@HofmannZ |
This comment has been minimized.
This comment has been minimized.
@Salakar it seems like |
This comment has been minimized.
This comment has been minimized.
Android works fine, having some issues with iOS pods. Let me check if that's me or the package. |
Ok, resolved the pods issue by cleaning the pods: But running into the following issue during iOS the build:
Seems like both |
Interesting, I know what that is, will push a fix shortly |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@Salakar I think that would indeed be the long term solution. For now, we should al least mention that if your building with a CI, you should use |
Tried using Build prints out bunch of warnings about pods and ends with:
|
Hey all,
|
@krokyze I've been digging into the issue a little bit. And it seems that the output for the background execution in The root of the problem lies in the fact that Flutter, in debug mode, does not generate dSYM files. If we move that out of the background the debug builds fail. One solution would be to find a way to check for debug mode in the build phase. As for now, I have no idea how to do that. Any suggestions are welcome :) |
@HofmannZ I was thinking the same about checking if it's debug mode, not sure if it's possible. The more I searched for solution, the more I started to think this is not really issue related with this package, but CI and FirebaseCrashlytics issue fastlane/fastlane#13096 |
You could do something like the following to limit to release builds only: if [ "${CONFIGURATION}" = "Release" ]; then
${PODS_ROOT}/FirebaseCrashlytics/upload-symbols --build-phase
fi |
Well, with a native iOS app, you would use Going to test it 🧪 |
Final script I've come up locally with, that will check if CI (should support all CIs) and whether is release mode: IS_CI="${CI}${CONTINUOUS_INTEGRATION}${BUILD_NUMBER}${RUN_ID}"
if [[ ("${CONFIGURATION}" == "Release" && (-n "${IS_CI}")) ]]; then
${PODS_ROOT}/FirebaseCrashlytics/upload-symbols --build-phase
else
${PODS_ROOT}/FirebaseCrashlytics/run
fi |
Don't we only want to run any of the scripts if in release mode, and then pick the script based on if you are in CI? |
I think everything is generally good for a merge here, so I'll go ahead and do one final dev release off this branch and then merge. We should do some follow up PRs for things like docs (e.g. the run script in CI notes from above) - would welcome contributions for this if anyone is willing. We'll keep it on dev release for a couple of weeks. |
Co-authored-by: @MaikuB
Co-authored-by: @Moncader
Co-authored-by: @axel-op
Co-authored-by: @Ehesp
Co-authored-by: @Salakar
Co-authored-by: @greghesp
Co-authored-by: @kirstywilliams
Co-authored-by: @helenaford
Description
For testing purposes,
firebase_crashlytics
version0.2.0-dev.4
is published with these changes.Changes
setUserEmail
setUserName
getVersion
isDebuggable
log
now returns a Future. Callinglog
now sends logs immediately to the underlying Crashlytics SDK instead of pooling them in Dart.setInt
,setDouble
,setString
andsetBool
have been replaced bysetCustomKey
.setCustomKey
returns a Future. CallingsetCustomKey
now sends custom keys immediately to the underlying Crashlytics SDK instead of pooling them in Dart.enableInDevMode
has been deprecated, useisCrashlyticsCollectionEnabled
andsetCrashlyticsCollectionEnabled
instead.Crashlytics
has been deprecated, useFirebaseCrashlytics
instead.reportError
are now prefixed withflutter_error_
..crash()
on Android & iOS/macOS now reports a custom named exception to the Firebase Console. This allows you to easily locate test crashes.FirebaseCrashlyticsTestCrash
.This is a test crash caused by calling .crash() in Dart.
.recordError
now uses a named native exception when reporting to the Firebase Console. This allows you to easily locate errors originating from Flutter.FlutterError
.checkForUnsentReports
.deleteUnsentReports
.didCrashOnPreviousExecution
.sendUnsentReports
.setCrashlyticsCollectionEnabled
.isCrashlyticsCollectionEnabled
.Related Issues
Supersedes #2288
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]
). This will ensure a smooth and quick review process.///
).flutter analyze
) does not report any problems on my PR.Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?