1

Preface: I am not an iOS developer and relevant documentation is scarce, so I may be missing something that should be obvious.

My team is building a Firebase app for iOS in Swift and we're getting crash reports in the console with obfuscated stack traces. The provided instructions to upload symbol files don't seem to be correct - the command as written returns an error about missing service account, and after we figured that one out it gave more warnings that we didn't decypher - but we managed to configure automatic upload and then rebuilt the latest release.

Now I see that a handful of UUIDs (presumably the phones/sims that we've run that rebuilt version on?) have uploads associated with them, but none of them match the reports we've received. What I don't understand is how we're supposed to generate symbol files for the rest of the UUIDs. Am I correct in understanding that a UUID refers to a specific device, and any given symbol file will match only a single build and UUID? We don't have access to the devices that are reporting these crashes; that's why we're relying on the console instead of debugging them in Xcode. If you only get the correct symbols for the devices that you physically connect to Xcode when you make the build, what's the point of getting the stack traces online?

Travis Christian
  • 2,412
  • 2
  • 24
  • 41
  • Just to make sure, you've followed and understood the official documentation here, right? https://firebase.google.com/docs/crash/ios You only need to upload symbols for each build that you want to observe crashes. The symbols are needed to decode the data from the crash into something you can actually read. They have nothing to do with any individual devices. – Doug Stevenson Sep 10 '16 at 19:43
  • @DougStevenson I have, as far as it goes. It doesn't cover the manual uploads prompted by the Firebase console, or UUIDs, or how to know symbols for the right devices are generated. What I've found elsewhere suggests that a UUID refers to a single device and that symbols are different for every combination of build, phone model, and iOS version. So since I have existing obfuscated reports I'm totally in the dark about how to symbolicate them correctly. – Travis Christian Sep 11 '16 at 03:11
  • The symbols you upload are for your app only. Firebase takes care of the OS symbols that are unique per type of device. The console prompts you to upload if it doesn't already have symbols for the particular version of the app that generates the crash you're looking at. If you're uploading through a script at build time, you won't have to upload via the console. – Doug Stevenson Sep 11 '16 at 04:21
  • @DougStevenson so what _does_ a UUID indicate? I guess we're all set for future builds, but it's still not clear if or how we can still get symbols for our existing reports. – Travis Christian Sep 12 '16 at 19:35
  • Do you mean UUID, or UDID? http://stackoverflow.com/questions/21872233/differences-between-udid-and-uuid – Doug Stevenson Sep 12 '16 at 22:13
  • @DougStevenson Ok, so it's an installed app instance and not correlated to symbol files. We should be all set for future reports. I'm still not getting the manual upload to work but I guess that's a separate troubleshooting question. Thanks for the responses - and on an unrelated note, for your post on organizing app builds. – Travis Christian Sep 13 '16 at 14:39
  • 1
    Glad to help. Also feel free to use firebase-talk to ask general questions. I'm always looking there as are many other Firebase staffers. https://groups.google.com/forum/#!forum/firebase-talk – Doug Stevenson Sep 13 '16 at 17:37

0 Answers0