Fabric / Crashlytics plugin: broken API, incomplete documentation

Hi folks.

Has anyone got the Fabric / Crashlytics plugin to work?  Using the (minimal and very poor) documentation found here: https://scotth.tech/plugin-fabric we have yet to be able to record any errors using the recordError() API.  Calling this function returns nothing in the console and no data appears in Crashlytics.

It took us a month but another user let us know that the only way to register your application with Crashlytics so this plugin works is to manually install the Android Studio, create a project with the same build ID as the app you want to use the Fabric / Crashlytics plugin, then register THAT application in Crashlytics.  Only then will data from the Fabric / Crashlytics plugin start sending to Crashlytics, and still never through the recordError() API.  NONE of this documentated anywhere and if it wasn’t for someone else on these forums who pointed us this convulated way of making this PAID plugin work we’d have nothing to show for our efforts.

We’ve tried using the author’s sample application (which only uses 2 of the 20 or so API calls he documents, and none of the Crashlytics ones) which does nothing but initialize the plugin and call the API… and still nothing.  Here’s the link to the code we used: https://www.protectedtext.com/crashlyticsforscott

Our requests for support to the author (Scott) go weeks without answer.  We’ve tried forum posts, forum private messages, emails, and his Google Forms request.  His post in the forums tell people to use the Google Forms, yet his website points to the Corona forums.  

If ANYONE has been able to get errors reported through this plugin we would deeply, deeply appreciate it if you could tell us.  Scott, PLEASE ASSIST.  Otherwise we’ve lost weeks of effort and the cost of this paid community plugin for nothing.  Sorry for the frustration, but the state of Corona plugins is so disappointing.  You can spend hundreds on paid “professional” plugins just for them to crash or straight up be incomplete.

Argh.  

I had it working on my apps. Set it up like the instructions say then send a support ticket to Fabric to get it started. The recording of events don’t work for this plugin (I forget if it is Android or iOS or both), but the crash reports do work. 

I removed it for GDPR because I didn’t want yet another consent, but if you need my code I can pull it up from the repo.

Hi folks.

Has anyone got the Fabric / Crashlytics plugin to work?  Using the (minimal and very poor) documentation found here: https://scotth.tech/plugin-fabric we have yet to be able to record any errors using the recordError() API.  Calling this function returns nothing in the console and no data appears in Crashlytics.

It took us a month but another user let us know that the only way to register your application with Crashlytics so this plugin works is to manually install the Android Studio, create a project with the same build ID as the app you want to use the Fabric / Crashlytics plugin, then register THAT application in Crashlytics.  Only then will data from the Fabric / Crashlytics plugin start sending to Crashlytics, and still never through the recordError() API.  NONE of this documentated anywhere and if it wasn’t for someone else on these forums who pointed us this convulated way of making this PAID plugin work we’d have nothing to show for our efforts.

We’ve tried using the author’s sample application (which only uses 2 of the 20 or so API calls he documents, and none of the Crashlytics ones) which does nothing but initialize the plugin and call the API… and still nothing.  Here’s the link to the code we used: https://www.protectedtext.com/crashlyticsforscott

Our requests for support to the author (Scott) go weeks without answer.  We’ve tried forum posts, forum private messages, emails, and his Google Forms request.  His post in the forums tell people to use the Google Forms, yet his website points to the Corona forums.  

If ANYONE has been able to get errors reported through this plugin we would deeply, deeply appreciate it if you could tell us.  Scott, PLEASE ASSIST.  Otherwise we’ve lost weeks of effort and the cost of this paid community plugin for nothing.  Sorry for the frustration, but the state of Corona plugins is so disappointing.  You can spend hundreds on paid “professional” plugins just for them to crash or straight up be incomplete.

Argh.  

Sorry that you feel this way, I have not received an email in a month so assumed everything was good

So you never got recordError working either?  I don’t even know how many hours we’ve spent trying to make it work.  We thought it was something we were doing wrong.  At least we know it’s just the plugin.

Your fatal crashes were showing up though?  I think we’re just going to abandon this and seek our money back.

Scott, we don’t need you to feel sorry, we just need support for a plugin we paid for and for whose documented API doesn’t work.  

You only have 2 API calls implemented that send anything to Crashlytics: 1) sendCrash() and recordError():

sendCrash() is a test only and crashes the game.  That works and you can repeat this test over and over.

recordError() is where you are supposed to send an error to Crashlytics with many details, such as log, user info, strings, bools, etc.  This does not work.  Every time you use this it logs every instance under the SAME non-fatal event, making it completely useless for capturing different events, identifying unique events, or distinguishing between all captured events.  It doesn’t leverage anything from Crashlytics and the ensures all data captured is useless.  Since this is the only way your plugin allows us to transmit data to Crashlytics it means that your plugin does not function as advertised.

Again, I apologize if I sound frustrated but that is because I can’t even count the number of hours we’ve had to spend to get your plugin “working”, and now we’ve realized it doesn’t do what it says it does.  Can you please provide us support in getting your plugin working as advertised?  We will work with you to provide test projects that show very clearly how your API does not function.

Cheers,

Chris

I forgot to mention recordError() also doesn’t send anything to Crashlytics unless the user completely closes out of the app and re-opens the app (re-initializing the plugin).  Another bug and no way to rectify unless you unload the plugin and re-load the plugin.

Did you ever get this working properly?  I would love to integrate something into my app to help me nail down crashes/errors but am not sure if this is the right direction.

Cheers

I would look elsewhere. According to the marketplace, this plugin was last updated on Apr 03 2018.

Thanks.

I was thinkin the same thing, but I am a bit of a loss.  Any recommendations for crash reporting?

Cheers,

Craig

I have been using flurry. The only pain is that on IOS you have to grab the script and modify it to send the symbols to them. Usually, the script runs when you are building in XCode but since I am using the simulator to build it is a lot more complicated. Other than that it works fine.

That marketplace info is inaccurate, that’s when I updated page info

Hi Scott,

Does your plugin work as expected? 

I’ve used a lot of your plugins (free and purchased) and never had any problems.   But, and I hope I don’t offend you, but I have been reading a lot of troubling stuff in these forums about this plugin and how it doesn’t exactly work as expected.

Cheers,

Craig

Thanks agramonte,

Can you go into a bit more detail about the script thing you mentioned?  I also use the simulator to build.

Cheers,

Craig

Our experience with this plugin was very poor.  The only reason we continue to use it is because we weren’t aware there was any other choice.  

Though we have been able to get some crashes to Crashlytics, it took weeks of painful discovery to get it working.  The documentation is nearly non-existent and we simply stopped getting responses from the developer.  Getting it to work on Apple is a nightmare and we didn’t have pages of documentation that we had to create ourselves, through our own discovery, it never would have worked.  Response from Developer: “I’m busy with school”.

To get this to work you will need to create Android Studio projects for each of your apps, and follow instructions you will not find on the Developer page.  For Apple it is even worse.  The errors that ARE sent to Crashlytics seem to be missing key pieces of information.  Many function calls provided by this API do not function at all or do not function as documented.  We’ve brought all this up to the developer with no remediation.  

I’ve heard of others developing their own implementations (you can use Google’s REST APIs to do the same) but the whole idea of a plugin is utilizing someone else’s work so you can focus on your apps.  We have lost waaaaaay more time than saved, by a margin of 100:1, on this.  Unfortunately there isn’t a lot of options on the current marketplace so you have to roll with what you have…

Thanks agramonte for mentioning Flurry, it looks promising.  Do I ever feel stupid now for not checking out Flurry earlier, and realizing they had an crash reporting side too.  We must have burned 120+ hours trying to get Crashlytics working with this plugin, and making it play nice with Firebase, etc.  

Sorry, this happened firerabbit, I am working on a Crashlytics overhaul due for this month.

@agramonte you wouldn’t happen to have some example code around on how to log errors with flurry.  

I have compiled the test app on an android device and am intentionally causing an error.  I can see that there was an error, but no log or anything.  Do I need to catch these events?

Cheers,

Craig

How are you causing the error? Is this Android or iOS? The plugin does not have many of the controls of the native version. But it does record crashes. If the Lua error causes a crash you will see it in the crash panel and in the live crash dashboard. 

GameAnalytics is more fleshed out in Corona and you can trap Lua exceptions and send them to GameAnalytics. I have used both. I like Flurry better because after a release I can sit in front of the live crash dashboard and make sure I didn’t break anything. But last time I checked GameAnalytics might also have a live panel.

this is all I do.

flurryAnalytics.init( Al.flurryListener, { apiKey=Al.flurryIds[Al.platform], crashReportingEnabled=true } )

Hi. I am on Android. I am not sure how this error log thing works but since i am mostly games most of my errors stem from timers or transitions not being cancelled properly. Mostly related to graphics objects. I tried to move a display object that don l didn’t exist. I can see there wad an error just not details. Cheers