139

I want to extract the dSYM file from but when I click on "Download dSYMs..." in the Organizer I get the follow message: "There are no dSYMs available for download.".

I'm using Xcode 7.2 with a workspace generated by Cocoapods 0.39.

How can I get them?

enter image description here

Felipe Peña
  • 2,712
  • 4
  • 22
  • 41
  • Were you able to figure this out? I am getting the same issue and the dSYM inside the package is missing the ones I am looking for. – jhk Feb 02 '16 at 20:54
  • No, it's been a pain. I can't see any crashes for my app. This was probably introduced by Xcode 7.2. – Felipe Peña Feb 02 '16 at 21:03
  • Same issue here... if you make any progress please do post it here! – Jordan Smith Feb 03 '16 at 10:37
  • @Jordan Of course. Any ideas on your end? – Felipe Peña Feb 03 '16 at 11:42
  • @FelipePeña well I noticed when inspecting the .xcarchive that there *already* seemed to be a DSYM folder inside. It didn't work to desymbolicate the crash logs though... I'm wondering if somehow the app was built with dsym files, then when iTunes Connect recompiles with bit code and produces new dsysms or however it works, we can't download because for some reason we already had dsym files... ? – Jordan Smith Feb 03 '16 at 21:09
  • We are planning to submit another build today. I'll let you know if we have the same issue with the new build. Xcode Version 7.2 (7C68) – jhk Feb 04 '16 at 20:22
  • @jhk ok. I don't think it's the real answer but I'm using Fabric and Crashlytics and those libraries seem to mess a bit the Cocoapods library package that gets attached to the workspace. If you agree this is something important, I can post details. – Felipe Peña Feb 04 '16 at 21:30
  • I am doing the same. I want to point out that it worked perfectly fine with the build before that. – jhk Feb 05 '16 at 22:04
  • @FelipePeña so we got a new build up and it was able to download the other dSYMs without any problems. I am beginning to suspect it had to do something with submitting with version 7.1 and upgrading Xcode in between... – jhk Feb 08 '16 at 18:50
  • @jhk thanks for the update. I think that too. Upgrading to Xcode 7.2... – Felipe Peña Feb 09 '16 at 03:53
  • @FelipePeña spoke to soon. :( I am seeing few "hashed" dSYMs in the folder but I don't see the few missing on Crashlytics. Do you know of a way to reset Xcode to redownload the dSYMs? It looks like it's being cached somewhere. I tried deleting the whole folder but it's still saying "All of the available dSYMs have already been downloaded.". – jhk Feb 09 '16 at 20:54
  • Bitcode must be enabled to download from iTunesConnect. My answer has been added to the list below. – Jacksonkr Sep 14 '17 at 14:06
  • In my case, for fabric test, I added some bug into my codes after the first launch in the fabric. so in this scenario, the fabric couldn't find symbols and also I couldn't find related dsyms. I recreated a new app and all things are OK – iman kazemayni Feb 18 '19 at 07:36

8 Answers8

327

NON-BITCODE

Here's a GIF on how to get DSYMS, compress and upload to crashlytics/fabric

enter image description here

  1. Press Window > Organizer
  2. Right-click on your app> Show in Finder
  3. Right-click on first .xcarchive file > Show package contents

BITCODE ENABLED

You'll need to download dsyms from App Store Connect. The easiest would be to use fastlane

lane :refresh_dsyms do
    download_dsyms                  # Download dSYM files from App Store Connect
    
    upload_symbols_to_crashlytics   # Optional for uploading to Crashlytics
end
Ted
  • 22,696
  • 11
  • 95
  • 109
  • 1
    But why Xcode download option is not working? do you have any idea? – Sazzad Hissain Khan Oct 13 '17 at 03:59
  • 1
    This didn't work for me directly from the package contents. I had to copy the dSYMs folder to another folder first and then compress it. See details in here https://stackoverflow.com/a/47193122/1203475. – David L Nov 09 '17 at 02:56
  • 1
    I needed to run this command in the /dSYM/ folder to compress: `zip -r SymbolFiles.zip *.dSYM` – Andrew Schreiber Nov 20 '17 at 03:31
  • 2
    The question is from "Download DSYMs" button. why it is not downloading by clicking the button? why we have to get it manually? – Zulqarnain Mustafa Nov 23 '17 at 13:21
  • I added the steps below the GIF. I hope it helps! – Ted Jul 03 '18 at 06:17
  • I tried your solution and uploaded it to crashlytics, it says upload successfull but when I reload the page I still get same error, any ideas? – Niloufar Dec 08 '18 at 09:23
  • 1
    It is a different issue, but looks like you uploaded the wrong binary which doesn't match to what crashlytics is looking for – Ted Dec 08 '18 at 12:21
  • This is not true for bitcode-enable apps! Bitcode-enabled apps will have different dsym files created by the appstore for the appstore versions. – WalterF Mar 30 '19 at 11:04
  • 1
    Even more applicable now with Xcode 14. Thank you for the demonstration GIF too. Nice touch. – Berry Wing Jan 27 '23 at 14:21
48

I think @Jordan is correct--it seems that iTunes Connect is recompiling apps with bitcode so that the UUID changes, and the dSYM inside the .xcarchive can't actually be used to symbolicate the app (this appears to be a new development).

You can download the correct dSYM from iTunes Connect. Login, go to My Apps, select your app, then tap on the Activity tab at the top. Tap on the relevant build, and, assuming the app was submitted with symbols in the first place, you should see the option to "Download dSYM."

The file you get is called dSYMs (without an extension) but it is in fact a zip file. Add the .zip extension, unzip, and you'll find your dSYM(s) inside.

(I needed to do this this week since Crashlytics was complaining about a missing dSYM.)

Lane Rettig
  • 6,640
  • 5
  • 42
  • 51
24

Actually you can't download dSYM file from iTunesConnect now. There is another way to get that file.

Xcode -> Window -> Organizer -> Show xcarchive file in Finder -> Right Click Your xcarchive file -> Select "Show Package Contents"

You can see your dSYM file now.

Joeytat
  • 241
  • 2
  • 3
22

bitcode must be enabled

if you want to get your dSYM from iTunesConnect

  • Build Settings > Build Options > Enable Bitcode > YES
  • Select device "Generic iOS Device" (or anything that works)
  • Archive

When exporting from archive

  • CHECK "include app symbols for your application to receive symbolicated crash logs from Apple"
  • CHECK "include bitcode"

Upload using Application Loader

Once your app has been successfully uploaded to iTunesConnect you can go to iTunesConnect.com > MyApps > [YOUR APP] > Activity > All Builds > [YOUR BUILD] > General Information > Includes Symbols > Download dSYM

#xcode8.2.1 #osx10.12.6

Community
  • 1
  • 1
Jacksonkr
  • 31,583
  • 39
  • 180
  • 284
  • 10
    True story. If you don't have bitcode enabled, Apple will merely show, "includes symbols: Yes" without the Download link. – Dan Rosenstark Nov 29 '18 at 01:20
  • 1
    True, Dan Rosenstark. For me, AFTER uploading to iTunesConnect, I had to use Xcode's Organiser and click the "Download dSYM" which didn't give an error, but apparently did nothing (no files appeared anywhere??), but then in iTunesConnect, the blue link appeared next to "Includes Symbols Yes". It's a maze. – legoblocks Jun 11 '20 at 16:05
  • Somehow the link doesn't appear in App Store Connect, even with dSYM and bitcode enabled. Only Includes Symbols: Yes – piotr_cz Jun 01 '22 at 10:15
11

I've found a solution from https://twittercommunity.com/t/not-matching-uuid-bitcode/61000/2

"Crashlytics was reporting missing dSYMs with UUID looking like this: 83889b11dedd363c8e5ee56233bcc90c. As I said, I followed the guide7 but I couldn't find that UUID. So I went in the iTunesConnect and I did the following:

  • Select the app
  • Choose the Activity tab on top
  • Select the build version Crashlytics is complaining about
  • Click the Download dSYM blue link

The downloaded file is called dSYM has no extension but it is actually a zip. So I added the zip extension and unzipped it. Inside the unzipped folder I found many dSYM files, one on which has called 83889B11-DEDD-363C-8E5E-E56233BCC90C.dSYM which matched the UUID Crashlytics was reporting as missing (even if formatted in a different way). Note also that this file is not inside the xcarchive.

Hope it can help!"

in my case, it works like charms

Davide
  • 752
  • 8
  • 19
10

In my case, I could not find a dSYM file of my app in the Archives folder. If you face this, go to your Project Build Settings > Build Options > Debug Information Format and make sure it is set to DWARF with dSYM file

daisura99
  • 1,030
  • 1
  • 12
  • 22
3

If dSYMs folder in package contents is empty (Ted's answer), try to check:

  • Build Settings > Build Options > Enable Bitcode is set to YES (Jacksonkr's answer)
  • Build Settings > Build Options > Debug Information Format is set to DWARF with dSYM file (daisura99's answer)

Please check them both.

Then in show package contents -> dSYMs folder, this time, you should find something.

In my case, it worked.

smukamuka
  • 1,442
  • 1
  • 15
  • 23
1

Form latest updates you no need to upload dSYM files manually, automatic upload is done with below process.

Step-1: Goto Target-> Build Settings -> Search for "debug information format". Set Debug Information Format to DWARF with dSYM File for all your build types.

enter image description here

Step-2: Goto Build Phases -> Expand Run Script and add script & input files

In Script:

"${PODS_ROOT}/FirebaseCrashlytics/run"

In input files:

${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
    $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

Example Screenshot:

enter image description here

Step-3: Finally add one more script to upload dSYM files

${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp 
      ${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios 
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}

enter image description here

Here, in the 2nd line of the script ${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios update with your project path means your app schema name

If you got error while running the app follow my answer Xcode 10.2.1 Command PhaseScriptExecution failed with a nonzero exit code

Error:

 Command PhaseScriptExecution failed with a nonzero exit code
Naresh
  • 16,698
  • 6
  • 112
  • 113
  • 1
    Step 3 runs the script when we install the pod but when we use the package that time which script needs to write for upload dSYM from XCode – S K Jun 22 '23 at 06:23
  • @ S K, I don't have idea, check with other answers. – Naresh Jun 22 '23 at 07:18