我正在开发一系列 iOS 应用程序,它们将共享一个通用的代码库。我已经将通用代码库开发为静态库,并希望在主应用程序的 .dSYM 文件中包含它的调试符号。我的理解是这是可能的,但我还没有让它正常工作。
通用的代码库在其自己的项目中,该项目具有静态库作为目标。该项目被拖入主应用程序的项目中。在主应用程序的目标的构建阶段中,我向 Target Dependency 和 Link Binary With Libraries 中添加了静态库。项目可以按预期构建和运行。
现在,如果我从主项目生成档案,我可以在 Finder 中查看该档案,它包含一个可用于符号化崩溃日志的 .dSYM 文件。然而,.dSYM 仅包含主应用程序的符号,而不包含静态库的符号。为了进一步确认这一点,我运行了以下命令:
dwarfdump /path/to/app.dSYM
输出(大部分)不包含来自静态库的任何符号。我找到的唯一例外是,我的主项目的 AppDelegate 是静态库中对象的子类,而 .dSYM 中有该超类的条目。但是,其他类都不存在.
在静态库项目的目标的生成设置中,我已经设置了以下内容:
- Strip Debug Symbols During Copy: NO
- Strip Linked Product: NO
- Generate Debug Symbols: YES
- Symbols Hidden by Default: NO
如果有人能提供一些指导,我将不胜感激。