【问题标题】:Xcode archive not creating DSYM fileXcode 存档未创建 DSYM 文件
【发布时间】:2012-12-14 02:06:44
【问题描述】:

对于我的大多数项目,我设置了一个“存档”方案来存档我的项目,创建一个 IPA 和 DSYM,我可以上传到 TestFlight。

但是,我正在处理一个更复杂的项目,该项目在项目工作区中有多个目标,以及相当多的静态链接库。我已经检查了每个目标并为所有配置设置了以下内容:

  • 部署后处理 -> 否
  • 剥离链接产品... -> 否
  • 条带调试... -> 否
  • 生成调试符号 -> 是
  • 调试信息... -> DWARF with DSYM

我使用的是 Xcode 4.5.2。我已经为许多没有问题的项目做到了这一点。这是第一个似乎阻止创建 DSYM 文件的地方。

无论我如何尝试,我的存档构建都不会生成 .DSYM 文件

【问题讨论】:

  • 在 Xcode 10.0 中,dSYM 文件存储在派生数据中 - 检查报告导航器 (cmd+9) 中的存档日志,如下所述:stackoverflow.com/a/14119376/1226304。就我而言,dSYM 文件在这里:/Users/USER_NAME/Library/Developer/Xcode/DerivedData/PROJECT_NAME-amlcnmxbghcsrcfrhbmvsfyjbins/Build/Intermediates.noindex/ArchiveIntermediates/PROJECT_NAME/BuildProductsPath/TARGET_NAME-iphoneos/APP_NAME.app.dSYM

标签: ios xcode archive debug-symbols dsym


【解决方案1】:

一些研究技巧。

  • 检查日志导航器。我进入了这个视图(我很少使用,所以我往往会忘记它的存在),我意识到 .DSym 文件实际上正在创建中。

  • 检查构建目录配置以查看它们是默认还是自定义...在我的情况下,它们是自定义的,因此它们没有被放置在典型的默认位置。

【讨论】:

  • 日志导航器也称为报表导航器
  • 检查构建目录配置到底是什么意思?我在多目标项目(Qt)上遇到了同样的问题。 DSyms 已创建但未上传到 AppStore。你最后是怎么解决你的问题的?
【解决方案2】:

【讨论】:

  • 对此感到困惑...“指定二进制文件是否接收部署后处理。部署后处理涉及剥离二进制文件,并设置其文件模式、所有者和组。” ...这是否意味着将其设置为 YES 会剥离二进制文件?
  • 请任何人描述它与 dSYM 的关系!
【解决方案3】:

xcode - > product -> Archive

你会看到档案窗口

1 选择您应用的任何档案 右键单击​​它然后选择在查找器中显示

2你看到aapname.xcarchive文件右键点击它并选择显示包内容

3 你看到dSYMs文件夹打开它并得到.dSYM文件

:)

【讨论】:

  • 这仅适用于 dSYM 实际上已生成且位于预期位置的情况。
  • 答案确实需要删除。问题不是“在哪里可以找到 dSYM?”
  • @Ash 如果你不喜欢也没关系。但它可以帮助其他一些用户,这就是他们给我积分的原因。
  • 我打算添加相同的答案,只是 +1 了你的。 :)
【解决方案4】:

找出问题

按照@belsokar 的建议,检查报告导航器。 在我的情况下,dSYM 文件尚未生成,并且没有对应的行类似于 "Generate Appname.dSYM ...in {path}" 但是已经安装了 Fabric,它记录了 dSYM 文件不存在的事实:

只需通过“dSYM”提交报告导航器。

修复

在我的情况下,我只需要做我被要求做的事情:

对于 ALL,DEBUG_INFORMATION_FORMAT 应设置为 dwarf-with-dsym 配置。

另外,可能会发现 dSYM 文件是在意外的地方生成的。检查环境变量,尤其是DWARF_DSYM_FOLDER_PATHDWARF_DSYM_FILE_NAME

要将 dSYM 嵌入应用程序包中,只需将 DWARF_DSYM_FOLDER_PATH 设置为 $(CONFIGURATION_BUILD_DIR)/$(EXECUTABLE_FOLDER_PATH) 并将 DWARF_DSYM_FILE_NAME 设置为 $(EXECUTABLE_NAME).dSYM

检查

现在构建应该为您的目标创建 dSYM

【讨论】:

    【解决方案5】:

    这是解决方法帮助我:

    1. 登录 iTunes Connect 并转到我的 应用。
    2. 单击您尝试下载 dSYM 的应用程序 转到“活动”标签。
    3. 单击您要展开的版本,然后 显示所有上传的构建。
    4. 单击所需的构建。
    5. 您将看到有关该构建的详细信息,以及右下角“包含符号”标题下的 dSYM 下载选项。

    【讨论】:

      【解决方案6】:

      如主要答案中所述,DWARF_DSYM_FOLDER_PATH 的值决定了 dSYM 的去向。默认值为$(CONFIGURATION_BUILD_DIR),因此如果您有自定义CONFIGURATION_BUILD_DIR 设置,它可以更改DWARF_DSYM_FOLDER_PATH,这样dSYM 就不会被复制到.xcarchive 中。我还发现自定义 SYMROOT 设置也可以更改路径,并且可能还会覆盖其他一些设置。

      通常在存档构建期间,CONFIGURATION_BUILD_DIR 和 DWARF_DSYM_FOLDER_PATH 值将位于“ArchiveIntermediates”文件夹下的某个位置,其内容可能会复制到最终的 .xcarchive。

      如果您可以避免覆盖这些设置,那可能会更可取,否则 DWARF_DSYM_FOLDER_PATH 可能还必须被覆盖以指向正确的位置,或者需要一个后期构建步骤来从任何位置复制 .dSYM 文件夹最终到达 XXX.xcarchive/dSYMS 文件夹。

      【讨论】:

        【解决方案7】:

        DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT=YES 将 .dsym 文件复制到我项目的存档中。

        另外,我没有更改默认的 DWARF_DSYM_FOLDER_PATHDWARF_DSYM_FILE_NAME 值。

        【讨论】:

          猜你喜欢
          • 2012-06-17
          • 1970-01-01
          • 1970-01-01
          • 2011-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-06
          相关资源
          最近更新 更多