错误消息: 上传丢失的dSYM以查看1个版本的崩溃。 受影响的版本:1.0(1)
我正在尝试在我的iOS项目中实施Firebase Crashlytics。我根据Firebase Crashlytics Doucmentation完成了所有设置。单击按钮时手动执行崩溃,以查看崩解是否正常。
@IBAction func onTestCrashButtonClick(_ sender: UIButton) {
Crashlytics.sharedInstance().crash()
}
但是当我试图在firebase控制台中看到错误报告时,它会显示类似这样的图像。
阅读Get Deobfuscated crash reports后,我只是将调试信息格式设置为 DWARF和dSYM文件 ,如下所示,但问题直到现在都没有修复。
答案 0 :(得分:61)
仅一种简单方式将DSYMS文件上传到Firebase Crashlytics。 ( 2020年6月1日)
从App Store下载appDsyms存档
1.1登录名:https://appstoreconnect.apple.com
1.2转到:MyApps->选择您的应用程序->活动(左上角)->选择要崩溃的版本->包含符号:按-> Download dSYM
。
打开终端,按以下顺序在终端上拖放3个文件:
2.1拖放:“上载符号”,可以在以下位置找到
/project/Pods/FirebaseCrashlytics/upload-symbols
2.2写入“ -gsp
”
2.3拖放一个:“ GoogleService-Info.plist”,可以在/project/GoogleService-Info.plist
2.4写入“ -p ios
”
2.5拖放一个“ appDsyms”文件夹,该文件夹通常位于下载文件夹/Users/username/Downloads/appDsyms
2.6按Enter
在终端中,完整的命令应包含-gsp
和-p ios
,完整的命令应如下所示:2.1 -gsp 2.3 -p ios 2.5
/project/Pods/FirebaseCrashlytics/upload-symbols -gsp /project/GoogleService-Info.plist -p ios /Users/username/Downloads/appDsyms
全部设置,等待在终端中上传!
一种通过拖放到终端来获取文件或文件夹位置的方法:
答案 1 :(得分:30)
我一直有同样的问题,我终于能够解决它了,以为我会分享对我有用的东西:
对于上下文,我正在开发一个使用多个Cocoapods的更大的应用程序。
我在Firebase Crashlytics页面上找到了相同的红色横幅,并在完成所有instructions之后,我仍然看到它。
我通过终端"手动尝试"存档/找到.dSYMs /上传。解决方案好几次无济于事。
最后,我决定从iTunesConnect下载.dSYM [您的应用]>活动> [期望的建造数]>下载dSYM
然后我手动上传了这些.dSYMs,几分钟内Firebase Crashlytics很高兴并展示了崩溃报告。
<强>更新强>
谷歌在Firebase Crashlytics仪表板上添加了一个时髦的.dSYM上传功能,不再从终端上传。
答案 2 :(得分:8)
Pods/Fabric/upload-symbols -gsp APP/Resources/GoogleService_Info.plist -p ios /Users/ME/Desktop/APP.app.dSYM
我最近用来将dsym上传到fabric的那个。我使用的是带有rashlytics SDK而不是firebase one(目前处于测试版)的结构。只需将您的应用名称替换为“ APP”,然后将您的DSYM路径替换为“ /Users/ME/Desktop/APP.app.dSYM”。
答案 3 :(得分:3)
2021 年 3 月
活动选项卡不再位于 itunesconnect 上,因此您必须获取 Dsyms 文件
下载后,在终端中运行此代码,用正确的文件路径替换引用的部分。
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
-gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
答案 4 :(得分:3)
将 Fabric Crashlytics 更新为 Firebase Crashlytics SDK之后。我也遇到了同样的问题(上传1个缺少的dSYM来处理5个崩溃)。我借助以下步骤解决了问题:
第1步: 打开目标->构建设置->搜索“调试信息格式”。 将所有 Debug Information Format (调试信息格式)设置为带有dSYM文件的DWARF 您的构建类型。
“ $ {PODS_ROOT} / FirebaseCrashlytics / run”
,然后添加输入文件-
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
步骤3::再添加一个脚本以上传dSYM文件
${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp ${PROJECT_DIR}/Your_path/GoogleService-Info.plist -p ios ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
答案 5 :(得分:2)
如果一切正常,则可以进行所有设置而不会丢失任何步骤,然后还会看到上载丢失的dSYM以查看崩溃错误。
仅从 iTunesConnect 下载 .dSYM ,然后将其上传到 Firebase 。
经过两天的漫长研究,尝试了许多解决方案,但没有人为我工作:(
但是通过此解决方案 Firebase Crashlytics很高兴,并在几分钟内显示了崩溃报告。
答案 6 :(得分:1)
查找并上传Crashlytics的调试符号
session_start();
if( !isset($_POST['addtocart']) )
{
if( !isset($_SESSION['array1']) ) $_SESSION["array1"] =array();
$_SESSION['array1'][] = $_GET['pid'];
}
print_r($_SESSION["array1"]);
在终端窗口上。mdfind "com_apple_xcode_dsym_uuids == <UUID>"
等待10-15分钟,然后崩溃才会开始出现在控制台上。
答案 7 :(得分:1)
下载dsym .zip文件后。您应该在终端下面运行代码。
/ProjectPath/Pods/Crashlytics/Crashlytics.framework/upload-symbols -gsp /ProjectPathForGoogleServiceFile/GoogleService-Info.plist -p ios /dSYMFilePath/dSYMs.zip
如果未找到upload-symbols命令,则应更新Firebase的Pod。
答案 8 :(得分:1)
希望您到现在为止都能解决。但对于其他使用Firebase / Crashlytics的用户。我上传了构建版本,但崩溃了,但由于缺少dsym而未能在控制台中显示。
之后,我使用以下命令将dsyms上传到firebase控制台:
/Users/ankitjaiswal/Code/oliobox-ios/Pods/FirebaseCrashlytics/upload-symbols
-gsp /Users/ankitjaiswal/Code/oliobox-ios/JacksonArtGallery/GoogleService-Info.plist
-p ios /Users/ankitjaiswal/Downloads/appDsyms.zip
但是,通过这种方式,您始终需要手动下载和上传它。不建议这样做,您可以点击以下链接:https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports-new-sdk
答案 9 :(得分:1)
如果您使用动态库是使用可可豆荚或任何其他工具的项目,那么Firebase需要重复的符号文件来定位库中的错误代码。如果您想了解有关dSysms的更多信息,请阅读:https://stackoverflow.com/questions/3656391/whats-the-dsym-and-how-to-use-it-ios-sdk
要查找dsysm文件夹,首先需要在firebase上报告崩溃的.ipa文件。在您的情况下,我想您正在模拟器上运行进行测试。要获得IPA,请按以下步骤操作:How to create ipa in xcode 6 without Apple Developer account?
当您到达.iPA时,右键单击并选择显示包裹内容,或点击以下链接:iphone: Where the .dSYM file is located in crash report
在那里你会找到系统文件夹。将此文件夹上传到firebase crashalytics。
希望这有帮助!
答案 10 :(得分:1)
我创建了有关dSYM上传的中等故事。
逐步介绍如何通过终端上传
中型链接: https://medium.com/@petarlemajic/firebase-dsyms-upload-1cf432c475f7 如果这可以帮助到我,我会很高兴。 干杯!
答案 11 :(得分:0)
顶级解决方案很好,感谢他们的作者。也许这个提示可以帮助某人:当你想通过崩溃你的应用程序来测试你的配置时,在模拟器上用 Xcode 构建它,然后停止应用程序并直接在模拟器中重新启动它。 正如 firebase 文档所说:初始实例包括一个干扰 Crashlytics 的调试器。 https://firebase.google.com/docs/crashlytics/test-implementation?platform=ios#test_it_out
答案 12 :(得分:0)
遵循简单步骤1转到存档并右键单击您要在Firebase上获取崩溃报告的最新版本2查看dsyms文件夹3创建dsyms文件夹的Zip文件4最后将该zip文件上传到Firebase控制台
答案 13 :(得分:0)
转到developer.apple.com>活动> iOS构建>选择版本>下载dSYM
更改您的项目路径和您的用户名
在Terminal
/ Users /您的项目路径/ ios / Pods / FirebaseCrashlytics / upload-symbols -gsp /Users/your-project-path/ios/GoogleService-Info.plist -p ios / Users /您的用户名/下载/appDsyms.zip
您会在Terminal
上看到成功消息。
15-30分钟后检查Firebase Console
上的崩溃日志。
答案 14 :(得分:0)
根据Firebase文档,而不是上载dsym
,也可以在构建阶段的“输入文件”字段中提供应用程序的Info.plist
构建位置:
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
答案 15 :(得分:0)
(2020年10月21日)
我在将dsyms上传到firebase时遇到很多麻烦,这是在我更新到FirebaseCrashlytics并删除了Fabric SDK之后发生的,这之前我没有任何问题。我没有运气就尝试了所有解决方案,但在对代码进行了一些更改之后终于解决了我的问题。看来我的info.plist
文件中有一些冲突的值,并且与我的GoogleService-Info.plist
文件中的内容不一致。 GoogleService-Info.plist
中的捆绑软件ID应该与info.plist
中的url方案使用相同。完成这些更改后,我手动上传了DSYM。
这是更新后我的包ID在我的项目中的外观的一个示例:
然后我想让它自动化。我将以下脚本添加到了“构建阶段”>“运行脚本”中,并且现在像以前使用Fabric sdk一样具有自动化功能。只需将此代码复制到运行脚本中,就无需进行任何更改。
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
PS:请确保您遵循其他文章,并确保在构建选项中也设置了“带有dYSM文件的DWARF”。
答案 16 :(得分:0)
如果您仍然想要可以复制和粘贴的现成脚本,则已经很好地回答了问题。给你。
find
$HOME/Library/Developer/Xcode
/DerivedData/<target-name>-*/Build/Products/Develop-iphoneos
-name "*.dSYM" | xargs -I \{\}
$PODS_ROOT/FirebaseCrashlytics/upload-symbols
-gsp ${PROJECT_DIR}/<target-name>/GoogleService-Info.plist
-p ios \{\}
答案 17 :(得分:0)
就我而言,我已经完成了以下工作,并且有效:
在“构建阶段”->“运行脚本”中选择“仅在安装时运行脚本” (Shell = $ {PODS_ROOT} / Fabric / run)
构建应用
现在,您可以在路径中找到.dsym文件, / Library / Developer / Xcode / DerivedData / XXX-arctjcalvfslmbakanpyivuuxjmm / Build / Products / Release-iphoneos
将压缩的.dsym文件上传到Firebase控制台
几分钟后,您可以找到崩溃报告
注意:
答案 18 :(得分:0)
被接受的答案是完美的,我也遵循。我只想添加另一种下载这些dSyms的方法。
从Xcode菜单>窗口>管理器中打开管理器
从左侧面板中选择“应用程序”,然后选择“存档”标签。
为要下载dSyms的应用程序版本选择存档。 (如果您删除了存档,则最好遵循已接受的答案)
在右侧面板上,单击“下载调试符号”。现在,这会将这些符号下载到存档本身中。只需右键单击存档版本>在Finder中显示。
在finder中,右键单击存档>显示包内容。
这将打开内容以显示dSyms。
现在您不需要所有它们,其中一些将是从pod和其他导入中添加的框架/库。
仅选择带有字母数字标签的标签。
您可以将其压缩并上传到Firebase。
答案 19 :(得分:0)