How can Corona SDK-built apps use Apple's Crash Report Service?

Folks:

Apple provides a wonderful service called Crash Report Service – see below for details. How can we use this with Xcode? It’s invaluable for debugging deployed and beta apps. Thanks! I figure someone should know…

 

Apple provides a service that allows you to download crash reports for the most recent app versions and builds that you distribute using TestFlight or the App Store. The service collects and groups similar crash logs into crash reports. Each build of an app may have multiple crash reports and each crash report may contain multiple crash logs.

Collects crash logs from apps running on user devices

Symbolicates the crash logs (replaces memory addresses with human-readable names)

Compares stack traces to identify and group similar crash logs into crash reports

Removes all personal user data from crash logs

Provides the total number of unique devices where the crash occurred

Provides a sample set of crash logs for each crash report

Updates crash reports daily

It’s been over two days – anyone? Rob? 

It seems difficult for me to imagine that Corona SDK-built apps can’t take advantage of Apple’s free crash reporting service. My app is now in beta so I’m finally experiencing the joys of testing firsthand. Any advice from Corona staff on how to use Crash Report Service?

Normally in the past, you can download crash reports from your test device via Xcode. If you have a .dsym file (which I think we create if you include plugins), you can symbolcate the crash log (turning hex addresses into things that become more readable. However this all happens in native space which means it won’t point to your Lua variables/functions.  But Engineering can use it to learn more about where the problem is. Also, these will be real crashes, where your app exits due to a segment violation or a bus error. Your j-random Corona error won’t likely generate these kinds of crashes.

I don’t know how useful it will be, but perhaps you can use it to spot patterns. 

Rob

Rob: Thanks for your response. What you say makes sense if you have physical possession of a test device.

But Apple’s Crash Report Service is something different. It collects information about crashes for apps distributed via the App Store or via TestFlight. It provides daily updates of crash reports, a sample set of logs, the number of unique devices where the crash occurred, etc.

Can you tell us how Corona-built apps can take advantage of Crash Report Service?

Let me restate what I said. This isn’t going to do squat for j-random Lua errors, it will only be things that cause hard app crashes (which still has value).  But a symbolcated crash log can be useful to help pin down where the crash caused, though you are likely not going to get Lua symbols out of it, only the Objective C/C++/Swift symbols.

How to use it? Download it, look at it and try to narrow down with the crash happened.

If you built with Enterprise, you might be able to use Xcode to help debug it, but Xcode will only show you when it hands off to Lua. 

Rob

Rob: Ah, now I understand what you mean. I already log Lua errors and stack tracebacks (by that I mean unhandledError exceptions) through my backend API.

But that does not catch when the Lua runtime itself crashes. And without Apple’s Crash Report Service I am unable to collect those statistics for iOS. I am able to on the Play Store, at least.

Has no other developer ever raised the issue of tracking crashes on iOS devices for published apps? It seems fundamental. The crashes are tracked via Xcode, as you can see from the link above, but i don’t know of a way to import a Corona SDK-built project for crash tracking purposes.

This might be something that would requires you to use Enterprise to build with so you have an Xcode project that would allow Xcode to debug it using the crash files. 

I’ll ask engineering, but right now they are focused on major initiatives like desktop support for Windows and OS-X, getting the Fuse plugin into your hands and so on. Since this is new, I doubt they’ve had time to investigate it, but if its something they can answer off of the top of their heads I might get an answer.

Rob

@corona273,

To view the crash reports for your published app please do the following:-

  1. Login to your itunes connect account.

  2. Open up the app details page for the app you are interested in.

3. On Versions, scroll down to the Additional Information section and click Crash Reports.

Hope that answers your question.

Anil

<anil8>: Thanks for your reply! Unfortunately because my app is in beta testing via TestFlight – and not in the app store proper – those options don’t appear. The page is blank, as you would expect for an unpublished app, and under Additional Information there is only Status History and Version Summary.

So I guess there’s no way to tell if your Corona-built app is crashing (using Apple Crash Reporting) unless you publish. :frowning: I understand Corona is working on other things, but it’s not that new; it’s been around since February…

I don’t know how I can explain this. This is not something that can be remotely usable with Corona SDK.  The simulator doesn’t run real apps. We don’t have access to any Xcode symbols anywhere that the crash log would be of remote value. We would have basically build the Xcode simulator which Apple has a team of hundreds of programmers working on full time. This is not going to happen. If you want it, use Enterprise to build your apps so you have access to an Xcode project to debug with.

Rob

It’s been over two days – anyone? Rob? 

It seems difficult for me to imagine that Corona SDK-built apps can’t take advantage of Apple’s free crash reporting service. My app is now in beta so I’m finally experiencing the joys of testing firsthand. Any advice from Corona staff on how to use Crash Report Service?

Normally in the past, you can download crash reports from your test device via Xcode. If you have a .dsym file (which I think we create if you include plugins), you can symbolcate the crash log (turning hex addresses into things that become more readable. However this all happens in native space which means it won’t point to your Lua variables/functions.  But Engineering can use it to learn more about where the problem is. Also, these will be real crashes, where your app exits due to a segment violation or a bus error. Your j-random Corona error won’t likely generate these kinds of crashes.

I don’t know how useful it will be, but perhaps you can use it to spot patterns. 

Rob

Rob: Thanks for your response. What you say makes sense if you have physical possession of a test device.

But Apple’s Crash Report Service is something different. It collects information about crashes for apps distributed via the App Store or via TestFlight. It provides daily updates of crash reports, a sample set of logs, the number of unique devices where the crash occurred, etc.

Can you tell us how Corona-built apps can take advantage of Crash Report Service?

Let me restate what I said. This isn’t going to do squat for j-random Lua errors, it will only be things that cause hard app crashes (which still has value).  But a symbolcated crash log can be useful to help pin down where the crash caused, though you are likely not going to get Lua symbols out of it, only the Objective C/C++/Swift symbols.

How to use it? Download it, look at it and try to narrow down with the crash happened.

If you built with Enterprise, you might be able to use Xcode to help debug it, but Xcode will only show you when it hands off to Lua. 

Rob

Rob: Ah, now I understand what you mean. I already log Lua errors and stack tracebacks (by that I mean unhandledError exceptions) through my backend API.

But that does not catch when the Lua runtime itself crashes. And without Apple’s Crash Report Service I am unable to collect those statistics for iOS. I am able to on the Play Store, at least.

Has no other developer ever raised the issue of tracking crashes on iOS devices for published apps? It seems fundamental. The crashes are tracked via Xcode, as you can see from the link above, but i don’t know of a way to import a Corona SDK-built project for crash tracking purposes.

This might be something that would requires you to use Enterprise to build with so you have an Xcode project that would allow Xcode to debug it using the crash files. 

I’ll ask engineering, but right now they are focused on major initiatives like desktop support for Windows and OS-X, getting the Fuse plugin into your hands and so on. Since this is new, I doubt they’ve had time to investigate it, but if its something they can answer off of the top of their heads I might get an answer.

Rob

@corona273,

To view the crash reports for your published app please do the following:-

  1. Login to your itunes connect account.

  2. Open up the app details page for the app you are interested in.

3. On Versions, scroll down to the Additional Information section and click Crash Reports.

Hope that answers your question.

Anil

<anil8>: Thanks for your reply! Unfortunately because my app is in beta testing via TestFlight – and not in the app store proper – those options don’t appear. The page is blank, as you would expect for an unpublished app, and under Additional Information there is only Status History and Version Summary.

So I guess there’s no way to tell if your Corona-built app is crashing (using Apple Crash Reporting) unless you publish. :frowning: I understand Corona is working on other things, but it’s not that new; it’s been around since February…

I don’t know how I can explain this. This is not something that can be remotely usable with Corona SDK.  The simulator doesn’t run real apps. We don’t have access to any Xcode symbols anywhere that the crash log would be of remote value. We would have basically build the Xcode simulator which Apple has a team of hundreds of programmers working on full time. This is not going to happen. If you want it, use Enterprise to build your apps so you have access to an Xcode project to debug with.

Rob