Alex Rivera | Logout

iOS Static Library Debug Symbols not being in included in dSYM

Asked 2012-07-17T22:07:16.433
17

I'm working on a series of iOS apps which will share a common codebase. I've developed the common codebase as a static library and want it's debug symbols included in the primary app's .dSYM file. My understanding is that this is possible, but I have not gotten it working yet.

The common codebase in its own project which has a static library as a target. This project is dragged into the primary app's project. In the primary app's target's Build Phases I've added the static library as a Target Dependency and under Link Binary With Libraries. The project builds and runs as desired.

Now, if I generate a archive from the main project, I can view that archive in Finder, and it contains a .dSYM file that can be used to symbolicate crash logs. However, the .dSYM only contains symbols for the primary app, not for the static library. To over-confirm this, I ran the following:

dwarfdump /path/to/app.dSYM

And the output (mostly) did not contain any symbols from the static library. The only exception I have found is that my primary project's AppDelegate is a subclass of an object in the static library, and there are entries for that super class in the .dSYM. However, none of the other classes are present.

In the static library's project's target's Build Settings, I have set the following:

  • Strip Debug Symbols During Copy: NO
  • Strip Linked Product: NO
  • Generate Debug Symbols: YES
  • Symbols Hidden by Default: NO

If anyone can offer some guidance, I would greatly appreciate it.

Edit
Report

1 Answer

4

Static lib symbols do show up in an app's dSYM file, and dwarfdump will reveal that.

 dwarfdump -a path/to/app.dSYM >dsymAsText.txt

That should show you the lib's symbols.

However if you are (as I have been recently) looking for a symbol table to be generated to go along with just your static lib, I have come to the conclusion that it will be fairly useless; once it get compiled into a new app those symbols and addresses will all change and you will have an entirely different offset for everything (please someone correct me if I'm wrong).

I'm not entirely sure there's a way to get around that part.

answered 2012-12-05T09:36:24.000

Your Answer