Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xcode archive not creating DSYM file

Tags:

For most of my projects, I setup an "archive" scheme to archive my project, creating an IPA and DSYM that I can upload to TestFlight.

However, I'm working on a more complicated project that has several targets within the project workspace, quite a few static linked libraries. I have gone through each target and set the following for all configurations:

  • Deployment Postprocessing -> NO
  • Strip Linked Product... -> No
  • Strip Debug... -> No
  • Generate Debug Symbols -> Yes
  • Debug Information... -> DWARF with DSYM

I am using Xcode 4.5.2. I have done this for multitudes of projects with no issues. This is the first where something seems to be preventing the DSYM file from being created.

No matter what I try, my archive build will not generate a .DSYM file

like image 411
belsokar Avatar asked Dec 28 '12 21:12

belsokar


People also ask

How do I create an archive in Xcode?

Archive your App In Xcode with your project open, select the simulator (button near the top of the window next to your project name, typically named as a specific type of iPhone) – change it to Generic iOS Device. Open the Product menu and choose Archive. You will see the archive information. Click Validate App.


1 Answers

Identifying the problem

As @belsokar suggested, check the Report Navigator. In my case, the dSYM file has not been generated, and there hasn't been a corresponding line that goes like "Generate Appname.dSYM ...in {path}" But there's been Fabric installed, and it logged the fact of the dSYM file's absence:

no dsym

Just filer the Report Navigator by "dSYM".

Fixing

In my case I've just had to do what I'm asked of:

DEBUG_INFORMATION_FORMAT should be set to dwarf-with-dsym for ALL configurations.

Also, it may turn out that dSYM file is being generated in an unexpected place. Check environment variables, especially DWARF_DSYM_FOLDER_PATH and DWARF_DSYM_FILE_NAME.

To embed the dSYM within the app bundle, just set DWARF_DSYM_FOLDER_PATH to $(CONFIGURATION_BUILD_DIR)/$(EXECUTABLE_FOLDER_PATH) and DWARF_DSYM_FILE_NAME to $(EXECUTABLE_NAME).dSYM

Checking

Now the build should create dSYM for your target

generate target.dSYM

like image 85
nikans Avatar answered Oct 24 '22 00:10

nikans