我正在开发一系列共享通用代码库的 iOS 应用程序。我已将通用代码库开发为静态库,并希望它的调试符号包含在主应用程序的 .dSYM 文件中。我的理解是这是可能的,但我还没有让它工作。
自己项目中的通用代码库,以静态库为目标。该项目被拖入主应用程序的项目中。在主应用程序目标的构建阶段中,我将静态库添加为目标依赖项,并在 Link Binary With Libraries 下添加。该项目根据需要构建和运行。
现在,如果我从主项目生成存档,我可以在 Finder 中查看该存档,它包含一个 .dSYM 文件,可用于符号化崩溃日志。但是,.dSYM 仅包含主应用程序的符号,而不包含静态库的符号。为了过度确认这一点,我运行了以下命令:
dwarfdump /path/to/app.dSYM
并且输出(大部分)不包含静态库中的任何符号。我发现的唯一例外是我的主要项目的 AppDelegate 是静态库中对象的子类,并且 .dSYM 中有该超类的条目。但是,其他类都不存在。
在静态库项目的目标构建设置中,我设置了以下内容:
- 在复制期间去除调试符号:否
- 带链接产品:否
- 生成调试符号:是
- 默认隐藏的符号:否
如果有人可以提供一些指导,我将不胜感激。