【问题标题】:Why are static library symbols not included in dSYM during archive?为什么归档期间 dSYM 中不包含静态库符号?
【发布时间】:2012-09-19 19:57:47
【问题描述】:

我们有一个非常重要的应用程序套件,用于具有几个应用程序目标的客户端,这些应用程序目标使用我们内部制作的几个静态库。所有目标都包含在一个 XCode 项目文件中。

由于某种原因,在归档应用程序时,dSYM 文件不包含任何静态库的调试符号。结果是,当尝试从现场代理中符号化崩溃日志时,我们无法看到这些静态库中发生了什么。

我尝试创建一个新的简单 XCode 项目,其中包含一个应用程序目标和一个静态库。即使这样,调试符号也丢失了。我没有运气根据这个https://github.com/TheRealKerni/QuincyKit/issues/91 摆弄构建设置。

如果我构建用于归档,则包含调试符号。我在生成的 dSYM 文件上运行了 dwarfdump,并且能够看到静态库实现文件的符号。但是,当我尝试归档项目时,符号被排除在外。

我错过了什么吗? XCode 版本 4.4.1

【问题讨论】:

  • 嗨,我也有同样的问题。为归档而构建工作得很好。但是即使我将部署后处理设置为 NO,产品存档也只会删除调试符号。您对此有任何可行的解决方案吗?

标签: ios xcode4 static-libraries


【解决方案1】:

我正在使用 XCode 5.1.1 并且遇到了同样的问题。

修复方法是将“部署”部分下的“剥离链接产品”设置为每个依赖库项目设置为“否”。更多详情请看我的帖子

can i debug ios app installed from ipa archive

【讨论】:

    【解决方案2】:

    这似乎已在更高版本的 XCode 中得到修复,目前使用 4.6 并且问题消失了。

    如果您无法使用旧版本,请执行以下操作: 产品 > 构建目标 > 归档 产品 > 存档 从派生数据中打开构建的产品,您可以通过右键单击产品组中的 Youapp.app 文件并选择在查找器中显示来执行此操作。确保您位于 Release-xxx 文件夹中。复制那里生成的 dSYM 文件并替换存档过程生成的文件。要查找存档文件的位置,请转到管理器,存档选项卡,右键单击一个项目并在查找器中显示。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      默认情况下,归档使用发布版本,该版本已经对调试符号进行了条带化​​处理。您可以将归档构建选项更改为“非条带化”。

      【讨论】:

        猜你喜欢
        • 2012-07-16
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        • 2015-06-24
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        相关资源
        最近更新 更多