Crash reporting(iOS&Android)

Does anybody know what is the difference in the crash reporting logs it shows in App Store connect & google play developer console vs if you use say for instance firebase crash reporting(crashlytics) ? Is there any major difference ? I’m asking because I’m deciding if I should integrate firebase crash reporting in my game or if the crash logs it shows on the developer consoles (iOS&Android) would do the job?

In Android Play Console the user can opt-in to send crash reports. If you use Firebase crash reporting / Crashlytics, You should implement an opt-out there, so you will get way more reports. I believe in iOS it’s the same.

Also is the dashboard in Firebase/Crashlytics way better - if not, Google hadn’t bought Crashlytics. We use it in all of our apps.

1 Like

How did you handle using firebase crashlytics after GDPR went into effect , because i think Firebase Crashlytics collects some device data of the user ? Besides being able to get more crash reports by using crashlytics is there any other difference , does the google play console still show method calls etc that caused the crash ?

We inform the user about it (in the app privacy policy), but Crashlytics doesn’t collect any user specific data (no email, name…). So we fulfill the GDPR policy.

The Play Console shows the same crashes (stacktrace), but Crashlytics also reports the stacktraces of all running threads (not only the crashing one). And in Crashlytics you can send “non fatal errors” (Log.e calls), which aren’t available in Play Console.

PS: I don’t know about native code, because our apps are purely Java/Kotlin based and my cocos2dx game isn’t released yet.

1 Like

I thought GDPR included non specific user data like device UID to ? Do you include options of how to opt out of crashlytics in your privacy policy or only inform them about it?

We also give the user an option to opt-out, but it’s mostly in the settings, so we get a high rate of not disallow it.

As far as I know Crashlytics doesn’t transfer any unique identifier. A device brand and Android version can’t be used to identify a specific user, so Crashlytics is fine. If you include an UDID or other non changeable device identifier, I would say: Don’t do it.

1 Like

Ok that makes sense , do you know which data if any of the user is used by crashlytics ? I tried finding it on firebase but couldn’t , to include it in my privacy policy

Hey Mars, on this page ( https://docs.fabric.io/apple/fabric/data-privacy.html#data-collection-policies ) it says that crashlytics collects UUID , do you know if this is considered personal data under GDPR ? Also do you collect consent when using firebase analytics in your apps ?

The UUID (for Crashlytics) is an installation id (created the first time the app is started), so it can’t be used to identify any personal data. It’s just to see, that the crashes are from the same device. We use for our apps opt-in and opt-out strategies, and for opt-in we do show a custom consent dialog, before activating it.

Do you have any other questions?

1 Like

You are referring to firebase analytics correct ? I think those were all the questions I had I’ll let you know if anything else comes up, I’m almost ready to release my game finally :grin:

No, I’m referring to Crashlytics - but it should be the same for Analytics. :wink:

1 Like

You said “for opt-in we do show a custom consent dialog, before activating it.” , but before you said you automatically activate crashlytics and then user can disable it in the settings ?

You’re right. But it depends on your app needs. We often use “opt-out” (user has to deactivate it explicit), but also “opt-in” (we show an dialog).

1 Like

ok I think I will just enable crashlytics by default and not give the option to opt-out since it only sends UUID & crash traces so I can receive all logs and crash reports

Hello @mars3142 i had a query is there anyway we can log js error in crashylitics as of now i can only see java crashes, can you put some insight on this

Crashlytics is able to log so called non-fatal, but you have to go the Java route to log it. Don’t know how to use it with JS and cocos2d-x, because I never used it. Are you able to set something like a crashhandler in JS? If yes, you can bridge that data to Java, which will report non fatals.

But you never get any alert for non fatals. We log server responses where the code is >400, so we see how many is wrong with our servers.

will surely look into these, thank you :slight_smile:

and one more thing i have a adevnture map that is based on cc.scrollview , but the scroll is very laggy is there any way to improve it . this map is contained of small sprites that are created dynamically as user scrolls. I was using ccui.scrollview the scroll was good but it was taking very long time to load the map. but now the map load time has reduced significantly but the scroll effect is laggy. anything that you can suggest to improve this.