确保您的项目构建设置生成dSYM文件。对于所有配置,DEBUG_INFORMATION_FORMAT应设置为dwarf-with-dsym。

214

最近我开始收到这个错误:

2015-03-23 11:35:48.902 run[60036:1047011] Crashlytics.framework/run 1.3.14
2015-03-23 11:35:48.911 run[60036:1047011] 

Crashlytics: dSYM Error

Unable to process <your app>.app.dSYM at path /path/to/<your app>.app.dSYM
Make sure your project build settings are generating a dSYM file. DEBUG_INFORMATION_FORMAT should be set to dwarf-with-dsym for all configurations. This could also be a timing issue, make sure the Crashlytics run script build phase is the last build phase and no other scripts have moved the dSYM from the location Xcode generated it.

Command /bin/sh failed with exit code 1

我已尝试此答案Unable to copy dSYM file into archive,但是所有的Generate Debug Symbols都设置为YES

还有其他建议吗?


6
在我看来,这是Fabric的麻烦事。我们专门在调试配置中禁用dsym以加快构建速度。 - Jonny
想要蛋糕也想吃掉它?只为模拟器设置DWARF。http://holko.pl/2016/10/18/dsym-debug/ - Piotr Byzia
应用程序构建失败,具体信息请参见https://stackoverflow.com/questions/60630429/app-build-failed-in-xcode-with-continuing-in-background-failed-to-display-xcode。有人知道这个问题的解决方法吗? - sejn
4个回答

636
以下解决方案适用于我。
进入项目的构建设置,然后在构建设置中搜索调试信息格式,并搜索“Debug information format”,将“Debug information format”设置为“带有dSYM文件的DWARF”。 enter image description here 确保构建设置中的Generate debug symbol设置为Yes。

31
在我的情况下,这个设置是DWARF用于调试模式。将其设置为DWARF with dSYM可以消除警告。谢谢! - Eneko Alonso
17
好的,如果我想在DEBUG模式下加速构建时间(通过关闭构建过程末尾的dSym生成),我该怎么做呢?我想要禁用这个警告。必须找到脚本! - Yaro
1
@Jaro:我正在研究类似的东西。在这篇博客文章中,他们也为每个CocoaPod更改了该设置,你认为这也是必要的吗?https://tech.zalando.com/blog/speeding-up-xcode-builds/ - fabb
1
@fabb:感谢你的脚本,但对我没有用。在安装了pods之后,我仍然看到dSYM。这个“cocoapods vs dSYM off”的问题真是让人头疼,如果项目中有100多个文件需要编译,那么它对构建时间没有任何影响。结果都一样:30秒。现在,使用2个RAID 0的SSD就会有所不同 :) - Yaro
3
如果你正在进行调试模式,这可能会减慢你的调试构建速度。我建议跳过Crashlytics脚本。使用类似如下的代码:debugConfig="Debug" if [ "$debugConfig" != "${CONFIGURATION}" ]; then "${PODS_ROOT}/Fabric/run" fi - xi.lin
显示剩余5条评论

98
检查“仅在安装时运行脚本”选项是否设置为真,以便在运行脚本时只有在安装时才会运行。

4
那是用来做什么的? - shim
这与Fabric的安装脚本有关,它将在应用程序安装期间执行。这将纠正DYSM问题。 - Bruno
1
@Bruno 我知道你知道这会修复DSYM问题。不过,为什么会这样呢?它是否通过引入另一个问题来解决此问题?它实际上是如何解决问题的? - Ky -

8

详细阐述Bruno的回答,如果你已经有一个需要一直运行的脚本阶段,请创建一个新的专用阶段以避免冲突。 在这里输入图片描述


-1

1
我没有Twitter账号,也不想在那里注册。你能在这里展示解决方案吗?至少是主要部分。 - General Failure

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接