What's new in Firebase Crashlytics

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[MUSIC PLAYING] JAYANTI DABHERE: Hello, everyone, and thank you for joining me at Google I/O. My name is Jayanti, and I'm a Software Engineer at Firebase Crashlytics. Whether you're an existing Crashlytics user or just starting to learn more about Crashlytics, welcome. Crashlytics is a leading mobile crash reporting platform, and as a team, we think about app stability a lot. We have been hard at work to help you find and fix those pesky crashes. That way, you can spend more time building apps and games that users love. Whether you double up on Android, Apple, Flutter, or games, we have some exciting updates for you today. Let's dive right into it. This year at Google I/O, we are excited to show you how we are strengthening the mobile ecosystem by integrating Crashlytics with Google's most popular developer products and making our platform work better with an open ecosystem of languages and frameworks. There are two key legs of a crash troubleshooting journey-- finding the crashes that are most important to fix, fixing crashes by identifying the offending lines in the code base. Finding a crash is way harder than it sounds. Even with Crashlytic's prioritized list of crashes, some of the most impactful crashes can be a mess. Fixing not only requires a detailed stack trace report but also additional information to get to the bottom of the root cause. To address these, I have some exciting updates lined up for you in these areas. I'm going to showcase brand new features in Android Studio's App Quality Insights window. For native apps and games, we not only have exciting features to address those tricky memory errors, but also multiple strategies improvements to help map the crash report to the exact line and file in your code base. And last but not the least, fundamental transformation of our crash grouping algorithm. Let's look at some of the ways we are helping you find the most important issues in your app, starting with Android Studio. Last year at Google I/O, we announced the canary launch of App Quality Insights window, which lets you view and address Crashlytics reports right from Android Studio. We have seen an incredible response from the Android community, and it's amazing to hear how it's streamlining the team's workflows. In addition to the clickable stack traces and issues list, you told us that finding and managing issues was still challenging. We have heard your feedback and are excited to share these updates. First, we are making it easier to find and filter crashes by letting you select the play track for the latest version of your app or via Crashlytics signal to identify the most important issues affecting your users. With Notes, you can collaborate with your team and record your findings to keep them up to date with the status of your bug fix. And when you have finally fixed the crash, you can now close the issue right from Android Studio. We are happy to announce that we are graduating these latest beloved features in Android Studio Flamingo to the stable channel. We hope you and your team take advantage of these and let us know what you think. If your Android app uses native code, C++ memory management issues are the most common and some of the trickiest bugs in Android software. Not only that, they account for over 60% of Android's security vulnerabilities and for millions of user visible crashes, leading to high lifetime development costs for your app. To help address memory related crashes, Crashlytics now supports GWP-ASan. GWP-ASan is an address sanitizer that helps you find and fix memory bugs such as use after free and buffer overflow in production environments. GWP-ASan can be enabled with a few simple steps, and once enabled for your app, Crashlytics highlights crashes with GWP-ASan reports using a new signal. You can quickly filter your issues list using that signal to find crashes that have GWP-ASan data. When you navigate to the issue, after clicking on the new memory stack trace tab, you will see a full GWP-ASan report with allocated and deallocated stack traces right next to the crash thread. We also provide an insight specific to the cause of the memory error, for example, use after free, that provides an explanation of the cause so you don't have to worry about what to do next. All right, now that we have identified what crashes to fix, it's time to squash those bugs. Let's look at some of the ways Crashlytics is making stack traces even better to help debug and fix these crashes. Development platforms are becoming more complex, making it harder to map the crash report to the line in your code base. To keep up with these changes, Crashlytics is continuing to improve the quality of stack traces by making the crashes look exactly like the code you wrote. For native apps, in addition to providing memory state traces via GWP-ASan reports, we have made improvements so that native stack traces are even more detailed, helping you find the exact file and line number of the code. ANRs that contain threads with native code are now fully symbolicated. And if your app is a Unity game, we have made IL2CPP frames more meaningful by adding translations for lambdas, generics, local functions, and types. For languages like Swift and Kotlin, the compiler generates extra frames that makes it challenging to navigate the stack trace and get to the root of the problem. To help you deal with such cases, we have greatly improved our symbolication engine so that these compiler generated frames now have an exact line and file number. Here is an example of the Swift stack trace before and after improvement. To uplift the quality of your stack traces using these improvements, upgrade now to the latest Crashlytics SDKs and Gradle plugin. Now, as we all know, having detailed stacked traces is sometimes not enough to fully understand a tricky crash. An app can crash in similar ways, generating almost identical state traces. Crashes that have a common point of failure can come from different code paths, making it even harder to get to the bottom of the bug. Don't worry, we are here to help. Crashlytics already groups crashes with similar stack traces into issues. To group crashes that have same failure point and similar stack traces, we are now introducing a new subgrouping called variants. With variants, you'll be one step closer in identifying the root cause of these pervasive crashes. Let's look at an example where variants can accelerate your crash debugging. As a developer, I want to get to the bottom of this issue, but the issue consists of hundreds of events, so I have to manually cycle through each of those. Not anymore. With Crashlytics variants, you can see an indication of the variants right on the issues list with a revamped metadata like package name. Diving even deeper, now I can see stack traces grouped together into several variants, also indicating the user impact of each variant. A quick glance at the stack trace and I can already see multiple code paths affecting this issue. I also know which one to focus on first based on one impacting most users or happening the most frequently in my app. In addition to introducing variants, we have fundamentally transformed our crash grouping algorithm. The way that we have grouped crashes has remained unchanged for many years, and we set out to improve it to solve some of the known problems. With these enhancements, you will now see-- fewer duplicates, a line number change doesn't cause a new issue; more meaningful alerts and signals, since a new issue actually represents a new bug; a more powerful search-- each issue contains more searchable metadata like exception type and package name. All right, with the help of variants and new crash grouping, now I finally know the offending line of code in my app. Let's go to the Android Studio and finally fix this bug. Hmm, it seems like the code on that line number has been refactored since the crash occurred, and the code looks very different from the one in the crash report. Today, we are happy to give you an early glimpse of a new feature in App Quality Insights. To improve on one of the most popular clickable strack trace features, we're now adding support for navigating to the version of your app at the blamed commit, point in time when the crash happens, so that you can compare the current and blamed commit version to get an insight of the state of the code base when the crash happened. This feature is now available in Android Studio Hedgehog's canary channel. We hope you give this a try and let us know what you think. As you saw, we have made a ton of improvements to make Crashlytics work better with popular Google Developer products and open ecosystem of languages and frameworks. To summarize, here is what we have covered-- App Quality Insights features on Android Studio, new Crashlytics signal, and memory stack traces as part of GWP-ASan support, improved stack traces across popular languages and platforms, and updated crash grouping algorithm and a new feature called variant. We're continuing to adapt and improve Crashlytics to give you a full service experience for your app stability issues across various platforms and devices. No matter what stage of app development you're in, we are here for you. We can't wait to hear what you think of these updates. Don't forget to upgrade to the latest Crashlytics SDK and Gradle plugin. Thank you for joining me today, and we'll see you at the next I/O. [MUSIC PLAYING]
Info
Channel: Firebase
Views: 6,085
Rating: undefined out of 5
Keywords: Google I/O, Google IO, IO, I/O, IO 23, I/O 23, Google I/O 23, Google IO 23, Google I/O 2023, Google IO 2023, IO 2023, Google New, Google Announcement, Google Developers, Developer, Development
Id: UmAFhPeCNF4
Channel Id: undefined
Length: 12min 11sec (731 seconds)
Published: Wed May 10 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.