Bugfender is a tool that assists mobile developers debug their applications and provide better customer support, by gathering logs from devices using their apps. In essence, Bugfender acts as a really long USB cable that connects all mobile phones running your application back to your computer… even if your application was downloaded from the App Store or Google Play and you’ve never actually met the user in person. Handy, right?
TL;DR: on top of being able to capture logs for all your devices, we’re adding the possibility of logging crashes for your applications. Keep reading for more details.
Why Crashes?
An application can generate many logs, and these can be difficult to wade through. Shortly after creating Bugfender, we introduced the ability to mark a session where exceptional situations occurred, making it easier to identify which logs need attention first. For example, if a user is unable to login multiple times, or the server gives an unexpected response, you can mark the session to indicate that it contains errors and the exact moment they occurred, so you can check those logs later. This is what we called Issues.
There are some issues we can detect automatically though, for example ,when an application encounters an unmanaged error and closes. This is generally called a ‘crash’ or a ‘force-close’. Android also has a common crash called ‘application not responding’ (ANR), which occurs when an application takes too long to complete a task without updating the UI.
What Are 1000 Apps Doing to Reduce Their Bugs to Zero?
Down to Zero is a practical guide to solving bugs. Our team has been developing mobile apps for over a decade and we'd like to share some tips we've picked up along the way.
We made a conscious decision to not add crash reporting in our first versions of Bugfender, mainly because it was already covered by other tools such as Crashlytics Log or Firebase. We decided Bugfender could add value in other areas not covered by these products, and work in tandem instead, such as the ability to collect logs or other kinds of exceptions.
So why add crash reporting now, you might be wondering? Well, after nearly four years of operation, Bugfender is already a mature tool and we feel it’s time to expand. Crash collection has been one of our most requested features by our customers; looking for a central place to manage both logs and crashes. So we listened to you. Thank you for your feedback, it’s invaluable to us in order to keep steering the product in the right direction. Please keep it coming!
The Advantages of Crash Collection in Bugfender
The main advantage of using Bugfender for crash collection is, of course, having all logs and reports in a single location. If a crash occurs, you can see the logs in that session and even explore the logs of that device in other sessions right there, without having to switch between tools.
Another advantage is that Bugfender is a paid tool. An advantage, you say? Well, when you’re not paying for the product, it means you are the product. When you use a free tool you are paying for it indirectly, through giving away you or your customer’s data. There is nothing wrong with this way of financing, but not everyone is okay with that. One has to take a conscious decision.
Crash collection is featured in all paid plans, however during our beta, it will also be available to free users.
How to Start Using Crash Reporting Right Away
First of all, you’ll need to update your SDK to the latest version. Then, it’s as simple as calling enableCrashReporting()
when installing Bugfender.
In Objective-C, write:
[Bugfender enableCrashReporting];
In Swift, Java and Kotlin, write:
Bugfender.enableCrashReporting()
Once enabled, crashes will appear in your Issues tab, like this:
Current Limitations
Currently, crash reporting is available for iOS and Android only, we do not yet have plans to support macOS.
On the roadmap is crash symbolication for production releases. Currently you’ll see information about the crash without the names of the functions and line numbers, which can be useful, so there’s definitely room for improvement and for us to expand on in the future.
If you encounter this situation, you can still symbolicate the crash log manually, but it requires a little work. In the future we will have a way for you to upload your symbol mapping files (the .dSYM file in iOS or mapping.txt in Android) so we can perform the symbolication directly in the Bugfender dashboard.
Does This Mean I Can’t Keep Using Crashlytics or Firebase?
Sure, of course you can. And this may even give you the best of both worlds as Crashlytics/Firebase can give you some useful statistics and symbolication (honesty first). Bugfender in contrast, can provide you with all of the logs and context that led up to the crash.
Start Collecting Crashes Now
Logging your application’s crashes will help you to easily collect and identify pain points for your users. Crashes are the #1 driver for 1-star reviews in the app stores and you should avoid them at all costs.
To start taking advantage of crash reporting, download our latest SDK and follow the install instructions, including calling the enableCrashReporting()
method. You will need a free account if you do not already have one.
If you encounter any problems using this feature or have any questions at all, please contact us in the support chat. We will be happy to help!