Table of Contents

TLDR

  • We are going to replace Google Firebase with Microsoft Appcenter.
  • Crash reporting should then “just work” for 99% of our users.
  • You may want to change the error reporting setting.

Today, I will let you in on a little secret. Code contains bugs. Any code contains bugs. As a developer, you can try to minimize bugs by writing code more defensively, manual and automated testing, but in the end, the code you write will still do unexpected things. For you as a user, you usually notice that whenever an app crashes, stops responding or something just does not work.

Androids greatest strength is its diverse user base and their diverse set of devices. Developers usually test apps on their own devices, and if you are using the same device, you will probably have the most bug-free and stable experience that is possible. However, 99 % of users are not in that group. You might experience a problem that only exists for you, and unless you tell us about it, we might never know it even existed.

Fortunately, this can be solved using crash logging and error analysis. Those tools allow developers to figure out what has happened on a device, even if it only occured once under very special circumstances. So whenever something unexpected happens, the app can send a report and tell us developers about it, and we can fix it.

Most Android developers use Firebase by Google for this purpose. We currently do too. Firebase bundles a lot of useful functionality, and without extra cost - something very important for apps that are not products, but community projects operating at a loss.

Google is an advertising company, and by default, Firebase runs afoul of privacy regulations in many jurisdictions. Firebase stores IP addresses and device or advertising identifiers, which can be personal data, something we developers try to avoid as much as possible. The result is that we cannot enable crash logging by default, and unless you searched the settings for the correct switch and enabled crash reports, we have when something goes wrong.

The Firebase SDK is also proprietary. While the OS and chips in every phone contain binary blobs, we feel that we really should not place a proprietary library in a position where it may be able to access the data on your rclone remotes.

We are currently testing Appcenter from Microsoft as a replacement. The SDK is open source, meaning we can actually verify and modify what data is collected. Since experience shows that pseudonymizing data does not work, we will completely strip out any data that may contain your personal data. This process replaces any remote name, file name, path, URL, URI and any identifier with a static keyword. For example, we may replace the path /data/media/0/jon_doe.pdf with ***REDACTED***.

If our plan works out, we will enable crash logging for everyone, when we are sure that no personal data is collected. If you enable error reporting, the app will send a report for any crash and some major errors. The SDK also sends further information that is the same for every user, including app version, SDK version and app secret. You can find more information in our privacy policy.

Whether this actually changes anything for you, depends on your previous choices:

  • If you previously disabled error reporting, the new SDK will also not send anything. You can also disable error reporting at any time.
  • Otherwise, if you previously had Google Play services, the SDK will now additionally collect the stripped error message. If you had previously disabled diagnostics data in your Google account as described here, error reporting may no longer fail.
  • If you did not have Google Play Services (e.g. custom ROMs), error reporting may no longer fail silently.

If you don’t want to contribute error reports, thats okay too. While it may take longer to fix any issue you may have, we will try work with you to figure it out manually. We are also working on creating a standalone debugging feature.

– x0b