首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请求不在存档或iTunes连接dSYM文件中的dSYM的Fabric

请求不在存档或iTunes连接dSYM文件中的dSYM的Fabric
EN

Stack Overflow用户
提问于 2016-02-25 18:53:14
回答 3查看 6.2K关注 0票数 16

我有一个应用安装了Crashlytics。为了获得它的dSYM文件,我一直到窗口/组织者,右键单击显示在查找,右击“显示包内容”,然后转到dSYM目录来获取它们。

在这个例子中,Crashlytics说它缺少一个dSYM文件,它是一个随机的数字和字母字符串(65cbd90a2b443d36ab7a6a419b797a71)。当我使用上面描述的方法查找它时,我只看到一个名为MyApp.app.dSYM和dSYM文件的文件,用于我通过CocoaPods集成的几个框架。我尝试使用拖放文件,但是Fabric坚持使用随机字符串。

我尝试过显示MyApp.app.dSYM的包内容,但是除了一个“Content”文件夹和一个"Resources“文件夹w/一个矮小的子目录和一个没有扩展名为"My”的文件之外,什么都没有。

在回顾这篇文章时,我99%肯定我不能仅仅是构建一个存档并重新提交它

我还尝试直接从iTunesConnect下载iTunesConnect,如概述的在这个岗位上

我试着上传那个dSYM“原样”,并压缩它(dSYM.zip),但是Fabric仍然想要一个似乎既不存在于本地存档中,也不存在于iTunesConnect上的dSYM上的随机字符串。

任何建议re:额外的方法,我可能得到的dSYM文件,Crashlytics是要求的,我们非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-04 02:33:42

当您从iTunes连接下载DSYM包时,您就快到了!下载后,添加一个.zip扩展,然后双击解压缩它。

在生产的DSYMs文件夹中,将有一个名为65cbd90a2b443d36ab7a6a419b797a71 ( Crashlytics要求的)的文件夹。如果它不在那里

只将该文件上传到Crashlytics.

问题解决了。

票数 12
EN

Stack Overflow用户

发布于 2016-03-04 06:04:56

对于未启用比特码的应用程序,Crashlytics将自动上传您的dSYMs。如果您在应用程序中启用了Bitcode,那么您需要手动上传dSYM。

启用Bitcode的应用程序需要从Xcode下载它们的Xcode,然后将其上传到Crashlytics,以象征崩溃。支持比特代码的应用程序的DSYM可以从Xcode的组织者下载。选择应用程序的特定存档,然后按下“下载dSYMs”按钮,它将把编译好的Bitcode dSYMs插入到原始存档中。

手动上传dSYM

如果您发现dSYM没有被选中,您可以手动添加它们,方法是转到您的应用程序设置页面,选择一个应用程序,然后单击“缺失dSYMs”选项卡上传dSYM。

要帮助查找dSYM所在的位置,请在开放终端中运行以下命令:

代码语言:javascript
复制
mdfind "com_apple_xcode_dsym_uuids == <UUID>"

若要查找所有dSYM,请尝试

代码语言:javascript
复制
mdfind "com_apple_xcode_dsym_uuids == *"

此外,如果将dSYM上传到Fabric,则应检查UUID是否与丢失的UUID匹配。在开放终端中运行此命令将为您提供dSYM的UUID。

代码语言:javascript
复制
dwarfdump -u <PathToYourAppsDsym>

参考文献

Crashlytics高级设置

票数 7
EN

Stack Overflow用户

发布于 2016-02-28 14:47:39

创建二进制文件时,符号位于文件中的特定位置。当没有符号时,崩溃日志将指示二进制文件中某些点的偏移量,例如someFramework.someFunction +100

因此,创建一个dSYM文件以帮助在该特定二进制文件中进行索引。重新归档修改后的代码库或项目将在新二进制文件中产生不同的偏移量,因此您不能简单地重新归档和上传。

这就是为什么用例如版本-v2.1标记你的git回购很重要,所以如果你需要的话,你可以回去重新存档,偏移应该是一样的。

至于织物的工作,它需要一个压缩版本的dSYM文件,您发布的数字可能是一个哈希的压缩文件,我不是百分之百肯定。

如果系统上安装了Fabric应用程序,那么在设备上运行版本应该会导致dSYM文件的自动上传(如果重复构建和运行一个项目,它会破坏上传带宽,在该项目中,每个生成的dSYM文件仍然会被上传)。

你最好的选择是在你的git中找到准确的时间点,然后在模拟器中重新运行这个应用程序,这应该会上传dSYM,并希望它能与旧的一个相匹配,尽管我不确定它是否能工作。否则,如果你认为你有确切的dSYM,试着压缩它并上传它。

如果这不起作用,你将不得不走老派的道路,用终端和碰撞日志中的偏移来手动地重新象征它。这需要一些时间,但使用阿托斯是可行的

代码语言:javascript
复制
atos [-o AppName.app/AppName] [-l loadAddress] [-arch architecture] 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35635874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档