4

I've set up Firebase Crash Reporting, including the run script as per the Firebase documentation, but there's a big issue: not all symbol files are uploaded when I build a new archive.

After I build a new archive, two UUID's symbol files were uploaded to the Firebase Console; however, there are dozens of UUID's for the archive I built (I know this from downloading the dSYMs from iTunes Connect).

Now, I've had a few crash reports come in, none of which are symbolicated. I can manually upload the dSYM files for each missing UUID using Firebase's batch-upload script, but that only allows future stack traces to be symbolicated. Any existing crashes are virtually useless to me.

There isn't much Firebase documentation about how the symbol files are uploaded, but from what I gather, all symbols should be uploaded for each new build, including archive builds.

So I guess my questions are:

  1. Am I missing a setup step?
  2. If this is expected behaviour, what is going on? Why are only some files uploaded?
  3. Does the run script output a log? Maybe I can view it and see if there were any errors.

Here is my run script:

if [ "$CONFIGURATION" == "Release" ]; then GOOGLE_APP_ID=<app-id> "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json fi 

Thanks!

2
  • I'm not sure I understand what you're saying when you ask "Why are only some files uploaded?" Commented Mar 9, 2017 at 17:49
  • When I download dSYM files from iTunes Connect, it includes .zip archive of dozens of .dSYM files (each file is a different UUID). Only two of the dozens are uploaded to Firebase. Commented Mar 9, 2017 at 18:26

3 Answers 3

4

It sounds like you're using bitcode? There's special instructions for that.

https://firebase.google.com/docs/crash/ios#bitcode_support

Sign up to request clarification or add additional context in comments.

3 Comments

Interesting. I don't think I ever noticed, but the bitcode box is checked by default when creating an archive. That leads me to another question, though: Is there a way to use the batch-upload script to upload all dSYM files rather than just one at a time? I'll probably write a script to do it, but it would be nice if the functionality was built in.
I don't think so, but the team would like to know your use case as a feature request via this form: firebase.google.com/support/contact/bugs-features
Cool; I've sent in my request. Thank you!
1

if bitcode is enabled in your project settings

Follow these steps carefully

  1. Add your unzipped dsym folder to your project's main directory
  2. Add this script to the dsym folder
  3. Open terminal
  4. cd into the dsym folder in the project's main directory
  5. Run this python script i.e 'python batch_upload_files.py'

https://github.com/hanijazzar/Contributions/blob/master/batch_upload_files.py

Comments

0

I wrote a Python 2.7 script to upload my dSYM's

I created this file structure in Projects source directory

Scripts/ |upload_syms.py |syms/ |myVersion/ |FE98728-928748923B78-ASDASDF... 

upload_syms.py

from sys import argv from os import listdir, system version = argv[1] symPath = 'syms/' + version command = './../Pods/FirebaseCrash/batch-upload ' command += '-i ../App/Info.plist ' command += '-p ../App/GoogleService-Info.plist ' command += '../App/ServiceAccount.json ' command += symPath + '/' symFiles = [f for f in listdir(symPath) if f != '.DS_Store'] for sym in symFiles: print 'Upload ' + sym + '...' system(command + sym) print print 'Uploaded ' + str(len(symFiles)) + ' dSYM files' 

Used by running in Terminal

python upload_syms.py myVersion 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.