作为Xcode构建过程的一部分,如何运行上传符号来上传dSYM?

use*_*626 4 xcode ios dsym crashlytics swift

好的,所以我尝试自动上传dSYM。我正在按照此官方文档中的说明进行操作:https : //firebase.google.com/docs/crashlytics/get-deobfuscated-reports

我被困在“手动运行上传符号脚本”部分。有3种上传dSYM的方法。我正在尝试遵循第一个-在构建过程中包括以下内容: find ${DWARF_DSYM_FOLDER_PATH} -name "*.dSYM" | xargs -I \{\} ${PODS_ROOT}/Fabric/upload-symbols -gsp MyProjectFolder/GoogleService-Info.plist -p ios \{\}

现在,我尝试了以下方法:

  1. 我去Project-> Scheme-> Edit Scheme。
  2. 我点击构建->发布动作
  3. 我从小开始-我只想在构建过程中显示“ echo”: 信息系统
  4. 我运行产品->构建
  5. 我去查看->导航器->显示报告导航器
  6. 没有迹象表明运行了回显。

该脚本放在哪里?

如何查找它是否正在运行?

Mik*_*rdy 7

TL; DR: 在“启用位码”时代,在生成时生成的dSYMS几乎没有价值,您需要从Apple下载dSYM,并将它们作为Apple处理您的上传后的构建后步骤,上传到您的第三方崩溃报告器服务。

背景

症状

在第三方崩溃报告控制台中缺少dSYM /符号失败。我认为尽管遵循了Crashlytics安装说明,但脚本仍失败。

位码-基本问题

事实证明,第三方崩溃报告系统(例如Crashlytics或New Relic)在当前的最佳应用分发实践(即启用了位码的应用)中存在一个基本问题。从历史上看,这些第三方崩溃报告系统依靠构建时步骤来上载构建时生成的dSYM。但是由于启用位码意味着应用程序商店会重新编译您的应用程序,因此您试图上载的由构建时生成的dSYM实际上是无用的。

作为背景,启用了位码的应用程序被“变薄”,因此被Apple重新编译,以使每个设备仅获得所需的下载位。您要启用bitcode。这是一件好事。但是,启用位码的分发会弄乱符号。无论您在构建时生成什么dSYM,这些dSYM实际上都不会与App Store或已安装的TestFlight构建中的崩溃相关,因为您的崩溃将来自具有新的对应dSYM的应用商店的应用商店重新编译版本。

因此,不必担心上载脚本在构建时是否起作用。实际上,可以从构建过程中删除该步骤,因为这只会浪费您的时间和带宽。

唯一有用的情况是,如果您要象征本地安装的发行版本中的崩溃,而不是直接在Xcode中调试它们。

解决方案

解决方案是在上传您的影片后等待“一段时间”(据NewRelic文档,几分钟,据我的经验,fastlane上传后睡眠120秒,但在运行fastlane的download_dsyms操作有时失败之前,可靠地睡眠300秒)应用程序(可能是App Store所说的构建持续时间),然后从那里下载dSYM,并使用您的第三方崩溃报告程序命令行上传脚本

手动下载/上传

第三方崩溃报告者(至少是NewRelic和Crashlytics文档)目前推荐的解决方案是转到App Store Connect页面进行构建并下载dSYM,然后上传,或使用XCode的Organizer进行归档,请点击“下载调试符号”按钮,然后上传它们。

这确实有效,将手动dSYM下载推送到崩溃报告供应商后,您将获得带符号的报告。尽管使用Xcode GUI或App Store Connect界面,这是一个手动过程。

Fastlane自动化

不过,您可以使用Fastlane自动化该过程,我相信这是正确的解决方案。

https://docs.fastlane.tools/actions/download_dsyms/#download_dsyms

https://docs.fastlane.tools/actions/upload_symbols_to_crashlytics/

  • 新闪存:Xcode 14(即将发布...)弃用了位码,默认情况下禁用它,如果您尝试手动将其设置为 true,则会向您发出警告,在上传之前将其剥离,并且 App Store 将拒绝带有位码的应用程序。所以这整件事可能很快就会改变风格,回到构建时 dSYM 上传最好的状态。/sf/ask/5078060991/ (2认同)

C. *_*tos 4

请尝试以下步骤:

第 1 步:选择应用程序的 Xcode 项目,然后选择应用程序目标,然后选择“构建阶段”。

步骤2:在Xcode菜单中,选择“编辑器”,然后选择“添加构建阶段”,然后单击“添加运行脚本构建阶段”。

第 3 步:您现在应该在“构建阶段”选项中看到“运行脚本”部分。

步骤 4:将脚本粘贴到运行脚本构建阶段的正文中。

请记住在脚本中设置正确的文件路径。