Firebase Crashlytics:上传缺失的 dSYM 以查看 1 个版本的崩溃。(iOS)
Firebase Crashlytics: Upload missing dSYMs to see crashes from 1 versions.(iOS)
错误消息:上传缺失的 dSYM 以查看 1 个版本的崩溃。
受影响的版本:1.0 (1)
我正在尝试在我的 iOS 项目中实施 Firebase Crashlytics。我根据 Firebase Crashlytics Doucmentation 完成了所有设置。当单击按钮只是为了查看 crashlytics 是否正常工作时,崩溃是手动执行的。
@IBAction func onTestCrashButtonClick(_ sender: UIButton) {
Crashlytics.sharedInstance().crash()
}
但是当我试图在 firebase 控制台中查看错误报告时,它显示了类似这张图片的内容。
阅读Get Deobfuscated crash reports后,我只是将调试信息格式设置为DWARF with dSYM File,如下所示,但问题未解决直到现在。
如果您使用动态库是您的项目使用 cocoa pods 或任何其他工具,那么 Firebase 需要复制符号文件来定位库中的错误代码。如果您想了解更多关于 dSysms 的信息,请阅读:
要找到 dsysm 文件夹,您首先需要在您的 firebase 上报告崩溃的 .ipa 文件。在你的情况下,我想你是 运行 在模拟器上进行测试。要获得 IPA,请按照以下步骤操作:How to create ipa in xcode 6 without Apple Developer account?
当你到达 .iPA 然后右击并 select 显示包内容,或者按照这个 link: iphone: Where the .dSYM file is located in crash report
在那里你会找到系统文件夹。将此文件夹上传到 firebase crashalytics。
希望对您有所帮助!
我遇到同样的问题已经有一段时间了,我终于能够解决它,我想我会分享对我有用的方法:
对于上下文,我正在开发一个更大的应用程序,它使用多个 Cocoapods。
我在我的 Firebase Crashlytics 页面上发现了同样的红色横幅,在关注了他们的所有 instructions 我仍然看到它。
我试了几次 "archive/find .dSYMs/upload manually via terminal" 解决方案都没有用。
最后,我决定从 iTunesConnect 下载 .dSYM。
[您的应用] > Activity > [所需内部版本号] > 下载 dSYM
然后我手动上传了这些 .dSYM,几分钟后 Firebase Crashlytics 很高兴并显示了崩溃报告。
更新
Google 在 Firebase Crashlytics 仪表板上添加了时髦的 .dSYM 上传功能,不再从终端上传。
编辑于 2020 年 3 月 16 日。
Google 即将删除 Firebase 仪表板上的上传功能。应从终端使用上传脚本将 dSYM 上传到 Firebase。请参阅 Google 的说明 here。
就我而言,我做了以下事情并且有效:
Select 'Run script only when installing' 在构建阶段 -> 运行 脚本
(Shell = ${PODS_ROOT}/Fabric/run)
构建应用程序
现在你可以在路径中找到.dsym文件,
/Library/Developer/Xcode/DerivedData/XXX-arctjcalvfslmbakanpyivuuxjmm/Build/Products/Release-iphoneos
将压缩的 .dsym 文件上传到 firebase 控制台
几分钟后,您可以找到崩溃报告
注意:
- 我在导出 ipa 文件(Adhoc 或 Appstore)时禁用了 bitcode
- 如果您需要启用了 bitcode 的 ipa,请从 iTunes connect 下载 dsym 文件
遵循简单步骤 1 转到存档并右键单击要在其中获取 firebase 崩溃报告的最新版本 2 查看 dsyms 文件夹 3 创建 dsyms 文件夹的 Zip 文件 4 最后将该 zip 文件上传到Firebase 控制台
查找并上传 Crashlytics 的调试符号
- 复制丢失的 dSYM 的 UUID 和 运行
mdfind "com_apple_xcode_dsym_uuids == <UUID>"
在终端 window.
- 以上命令将return类似于
.../build/ios/Release-Staging-iphoneos/your.app.dSYM
- 压缩包并使用 Firebase 仪表板上传到 Crashlytics
等待 10-15 分钟,然后崩溃开始出现在控制台上。
如果一切正常,您可以在不遗漏任何步骤的情况下进行所有设置,然后您还会在 firebase 中看到 上传丢失的 dSYM 以查看崩溃 错误。 (6 月 1 日 - 2020 年)
Download the .dSYMs from iTunesConnect only no anywhere else and upload those to the Firebase.
Google 即将删除 Firebase 仪表板上的上传功能
Run the script directly from your terminal to upload dSYMs :
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
经过两天的长时间研究并尝试了很多解决方案,但没有人适合我:(
但是通过这个解决方案 Firebase Crashlytics 很高兴并在几分钟内显示了崩溃报告。
我也遇到了同样的问题。
基本上我错过了一个简单的步骤,这就是为什么 Firebase 脚本无法上传 dSYM 文件。
解决问题的步骤。
- 单击项目文件
- Select目标
- 转到构建设置
- 搜索"debug information format"
- 对于所有方案,将设置更改为 "DWARF with dYSM file"
- 现在运行再次项目
- firebase 仪表板的 dYSM 错误应该...
接受的答案是完美的,我也遵循了。我只想添加另一种下载这些 dSyms 的方法。
从 Xcode 菜单打开管理器 > Window > 管理器
Select 左侧面板中的应用程序和 select 存档选项卡。
Select 您要下载 dSyms 的应用程序版本的存档。 (如果你删除了档案,那么你最好按照接受的答案)
在右侧面板上,单击“下载调试符号”。现在这会将这些符号下载到存档本身中。只需右键单击存档版本 > 在 Finder 中显示。
在 finder 中,右键单击存档 > 显示包内容。
这将打开内容以显示 dSyms。
现在您不需要所有这些,其中一些将是您添加的 frameworks/libs 来自 pods 和其他进口。
Select 只有带有字母数字标签的那些。
您可以将这些压缩并上传到 Firebase。
下载dsym .zip 文件后。您应该 运行 在终端中输入以下代码。
/ProjectPath/Pods/Crashlytics/Crashlytics.framework/upload-symbols -gsp /ProjectPathForGoogleServiceFile/GoogleService-Info.plist -p ios /dSYMFilePath/dSYMs.zip
如果找不到上传符号命令,您应该更新 pods Firebase。
我希望你到现在为止已经解决了它。但对于其他使用 Firebase/Crashlytics 的人来说。我上传了构建并崩溃了,但由于缺少 dsyms,它没有显示在控制台中。
我登录了 iTunes 并转到 activity 部分。然后下载dsyms.
之后,我使用以下命令将 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
但这种方式总是需要手动下载和上传。不推荐这样做,相反你可以按照这个 link: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports-new-sdk
Pods/Fabric/upload-symbols -gsp APP/Resources/GoogleService_Info.plist -p ios /Users/ME/Desktop/APP.app.dSYM
我最近用这个将我的dsym上传到fabric。我使用的是带有 crashlytics SDK 的 fabric 而不是 firebase SDK(目前处于测试阶段)。只需将您的应用程序名称替换为 'APP' 和您的 DSYM 路径,而不是 '/Users/ME/Desktop/APP.app.dSYM.
仅简单 将 DSYMS 文件上传到 Firebase Crashlytics 的方法。 (2021 年 4 月)
从 App Store 下载 appDsyms 存档
1.1 登录:https://appstoreconnect.apple.com
1.2 转到:MyApps -> 选择您的应用 -> 试飞 -> Select App Store 中的应用版本 -> 构建元数据 -> 包含符号(右侧) -> 按: 下载 dSYM.
打开终端,按以下顺序将 3 个文件拖放到终端上:
2.1 拖拽:"upload-symbols" 可以在
/project/Pods/FirebaseCrashlytics/upload-symbols
2.2 写“-gsp
”
2.3 拖拽:“GoogleService-Info.plist”可以在/project/GoogleService-Info.plist
中找到
2.4 写“-p ios
”
2.5 拖放:“appDsyms”文件夹(未存档,zip 文件可能无法运行!)通常位于下载文件夹 /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
设置完毕,等待终端上传!
终端示例:
-
通过拖放到终端获取文件或文件夹位置的一种方法:
-
AppStore Connect,下载 dSYM:
如果您仍然想要可以复制和粘贴的现成脚本,问题已经得到很好的回答。给你。
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 \{\}
我创建了关于 dSYM 上传的 Medium Story。
逐步介绍如何使用终端上传
中Link:
https://medium.com/@petarlemajic/firebase-dsyms-upload-1cf432c475f7
如果这对某人有帮助,我会很高兴。
干杯!
(2020 年 10 月 21 日)
我在将我的 dsyms 上传到 firebase 时遇到了很多问题,这发生在我更新到 FirebaseCrashlytics 并删除了我的 fabric SDK 之后,在此之前我没有任何问题。我尝试了所有解决方案但没有成功,但在对代码进行了一些更改后终于找到了我的问题。我的 info.plist
文件中似乎有一些冲突的值,并且与 GoogleService-Info.plist
文件中的值不一致。 GoogleService-Info.plist
中的包 ID 应与 info.plist
中的 url 方案相同。进行这些更改后,我手动上传了 DSYM。
这是更新后我的包 ID 在我的项目中的外观示例:
GoogleService-Info.plist
info.plist
然后我希望这个自动化。我将以下脚本添加到 Build Phases > 运行 脚本中,现在我可以像以前使用 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”。
将 Fabric Crashlytics 更新为 Firebase Crashlytics SDK 后。我也遇到了同样的问题(上传 1 个缺失的 dSYM 需要处理 5 个崩溃)。我在以下步骤的帮助下解决了问题:
步骤 1-:
打开目标->构建设置->搜索“调试信息格式”。
将所有 调试信息格式 设置为 DWARF with dSYM File
你的构建类型。
第 2 步-:
打开 运行 脚本部分并输入脚本
"${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}
根据 firebase 文档,除了上传 dsym
您还可以将应用的构建 Info.plist
位置提供给构建阶段的输入文件字段:
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
转到 developer.apple.com > Activity > iOS 构建 > Select 版本 > 下载 dSYM
更改你的项目路径和你的用户名
运行 此代码在 Terminal
/Users/your-project-path/ios/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/your-project-path/ios/GoogleService-Info.plist -p ios /Users/your-username/Downloads/appDsyms.zip
您将在 Terminal
上看到成功消息。
在 15-30 分钟后检查 Firebase Console
上的崩溃日志。
2021 年 3 月
activity 选项卡不再位于 itunesconnect 上,因此要获取 Dsyms 文件,您必须
- 转到 iTunes 连接。
- 我的应用程序。
- Select 特定应用。
- 导航到试飞。
- select 您要为其生成 Dsyms 文件的版本。
- 点击构建元数据。
- 搜索“包含符号”,然后单击然后单击下载。
然后在下载后 运行 终端中的此代码用正确的文件路径替换引用的部分。
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
-gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
感谢他们的作者,顶级解决方案很好。也许这个提示可以帮助某人:当你想通过崩溃你的应用程序来测试你的配置时,在模拟器上使用 Xcode 构建它,然后停止应用程序并直接在模拟器中重新启动它。
正如 firebase 文档所说:初始实例包括一个干扰 Crashlytics 的调试器。 https://firebase.google.com/docs/crashlytics/test-implementation?platform=ios#test_it_out
如果启用位码 = 是
- 前往 App Store Connect
- 转到 iOS 构建并下载 dSYM
- 打开一个终端
- 运行命令
/Users/your-project-path/ios/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/your-project-path/ios/GoogleService-Info.plist -p ios /Users/your-username/Downloads/appDsyms
- 收到成功消息并在一段时间内刷新 Firebase 控制台后,您将看到反射
注意:将所有构建的 dSYM 文件上传到 Firebase
错误消息:上传缺失的 dSYM 以查看 1 个版本的崩溃。 受影响的版本:1.0 (1)
我正在尝试在我的 iOS 项目中实施 Firebase Crashlytics。我根据 Firebase Crashlytics Doucmentation 完成了所有设置。当单击按钮只是为了查看 crashlytics 是否正常工作时,崩溃是手动执行的。
@IBAction func onTestCrashButtonClick(_ sender: UIButton) {
Crashlytics.sharedInstance().crash()
}
但是当我试图在 firebase 控制台中查看错误报告时,它显示了类似这张图片的内容。
阅读Get Deobfuscated crash reports后,我只是将调试信息格式设置为DWARF with dSYM File,如下所示,但问题未解决直到现在。
如果您使用动态库是您的项目使用 cocoa pods 或任何其他工具,那么 Firebase 需要复制符号文件来定位库中的错误代码。如果您想了解更多关于 dSysms 的信息,请阅读:
要找到 dsysm 文件夹,您首先需要在您的 firebase 上报告崩溃的 .ipa 文件。在你的情况下,我想你是 运行 在模拟器上进行测试。要获得 IPA,请按照以下步骤操作:How to create ipa in xcode 6 without Apple Developer account?
当你到达 .iPA 然后右击并 select 显示包内容,或者按照这个 link: iphone: Where the .dSYM file is located in crash report
在那里你会找到系统文件夹。将此文件夹上传到 firebase crashalytics。
希望对您有所帮助!
我遇到同样的问题已经有一段时间了,我终于能够解决它,我想我会分享对我有用的方法:
对于上下文,我正在开发一个更大的应用程序,它使用多个 Cocoapods。
我在我的 Firebase Crashlytics 页面上发现了同样的红色横幅,在关注了他们的所有 instructions 我仍然看到它。
我试了几次 "archive/find .dSYMs/upload manually via terminal" 解决方案都没有用。
最后,我决定从 iTunesConnect 下载 .dSYM。
[您的应用] > Activity > [所需内部版本号] > 下载 dSYM
然后我手动上传了这些 .dSYM,几分钟后 Firebase Crashlytics 很高兴并显示了崩溃报告。
更新
Google 在 Firebase Crashlytics 仪表板上添加了时髦的 .dSYM 上传功能,不再从终端上传。
编辑于 2020 年 3 月 16 日。
Google 即将删除 Firebase 仪表板上的上传功能。应从终端使用上传脚本将 dSYM 上传到 Firebase。请参阅 Google 的说明 here。
就我而言,我做了以下事情并且有效:
Select 'Run script only when installing' 在构建阶段 -> 运行 脚本 (Shell = ${PODS_ROOT}/Fabric/run)
构建应用程序
现在你可以在路径中找到.dsym文件, /Library/Developer/Xcode/DerivedData/XXX-arctjcalvfslmbakanpyivuuxjmm/Build/Products/Release-iphoneos
将压缩的 .dsym 文件上传到 firebase 控制台
几分钟后,您可以找到崩溃报告
注意:
- 我在导出 ipa 文件(Adhoc 或 Appstore)时禁用了 bitcode
- 如果您需要启用了 bitcode 的 ipa,请从 iTunes connect 下载 dsym 文件
遵循简单步骤 1 转到存档并右键单击要在其中获取 firebase 崩溃报告的最新版本 2 查看 dsyms 文件夹 3 创建 dsyms 文件夹的 Zip 文件 4 最后将该 zip 文件上传到Firebase 控制台
查找并上传 Crashlytics 的调试符号
- 复制丢失的 dSYM 的 UUID 和 运行
mdfind "com_apple_xcode_dsym_uuids == <UUID>"
在终端 window. - 以上命令将return类似于
.../build/ios/Release-Staging-iphoneos/your.app.dSYM
- 压缩包并使用 Firebase 仪表板上传到 Crashlytics
等待 10-15 分钟,然后崩溃开始出现在控制台上。
如果一切正常,您可以在不遗漏任何步骤的情况下进行所有设置,然后您还会在 firebase 中看到 上传丢失的 dSYM 以查看崩溃 错误。 (6 月 1 日 - 2020 年)
Download the .dSYMs from iTunesConnect only no anywhere else and upload those to the Firebase.
Google 即将删除 Firebase 仪表板上的上传功能
Run the script directly from your terminal to upload dSYMs :
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
经过两天的长时间研究并尝试了很多解决方案,但没有人适合我:(
但是通过这个解决方案 Firebase Crashlytics 很高兴并在几分钟内显示了崩溃报告。
我也遇到了同样的问题。 基本上我错过了一个简单的步骤,这就是为什么 Firebase 脚本无法上传 dSYM 文件。
解决问题的步骤。
- 单击项目文件
- Select目标
- 转到构建设置
- 搜索"debug information format"
- 对于所有方案,将设置更改为 "DWARF with dYSM file"
- 现在运行再次项目
- firebase 仪表板的 dYSM 错误应该...
接受的答案是完美的,我也遵循了。我只想添加另一种下载这些 dSyms 的方法。
从 Xcode 菜单打开管理器 > Window > 管理器
Select 左侧面板中的应用程序和 select 存档选项卡。
Select 您要下载 dSyms 的应用程序版本的存档。 (如果你删除了档案,那么你最好按照接受的答案)
在右侧面板上,单击“下载调试符号”。现在这会将这些符号下载到存档本身中。只需右键单击存档版本 > 在 Finder 中显示。
在 finder 中,右键单击存档 > 显示包内容。
这将打开内容以显示 dSyms。
现在您不需要所有这些,其中一些将是您添加的 frameworks/libs 来自 pods 和其他进口。
Select 只有带有字母数字标签的那些。
您可以将这些压缩并上传到 Firebase。
下载dsym .zip 文件后。您应该 运行 在终端中输入以下代码。
/ProjectPath/Pods/Crashlytics/Crashlytics.framework/upload-symbols -gsp /ProjectPathForGoogleServiceFile/GoogleService-Info.plist -p ios /dSYMFilePath/dSYMs.zip
如果找不到上传符号命令,您应该更新 pods Firebase。
我希望你到现在为止已经解决了它。但对于其他使用 Firebase/Crashlytics 的人来说。我上传了构建并崩溃了,但由于缺少 dsyms,它没有显示在控制台中。
我登录了 iTunes 并转到 activity 部分。然后下载dsyms.
之后,我使用以下命令将 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
但这种方式总是需要手动下载和上传。不推荐这样做,相反你可以按照这个 link: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports-new-sdk
Pods/Fabric/upload-symbols -gsp APP/Resources/GoogleService_Info.plist -p ios /Users/ME/Desktop/APP.app.dSYM
我最近用这个将我的dsym上传到fabric。我使用的是带有 crashlytics SDK 的 fabric 而不是 firebase SDK(目前处于测试阶段)。只需将您的应用程序名称替换为 'APP' 和您的 DSYM 路径,而不是 '/Users/ME/Desktop/APP.app.dSYM.
仅简单 将 DSYMS 文件上传到 Firebase Crashlytics 的方法。 (2021 年 4 月)
从 App Store 下载 appDsyms 存档
1.1 登录:https://appstoreconnect.apple.com
1.2 转到:MyApps -> 选择您的应用 -> 试飞 -> Select App Store 中的应用版本 -> 构建元数据 -> 包含符号(右侧) -> 按: 下载 dSYM.
打开终端,按以下顺序将 3 个文件拖放到终端上:
2.1 拖拽:"upload-symbols" 可以在
/project/Pods/FirebaseCrashlytics/upload-symbols
2.2 写“
-gsp
”2.3 拖拽:“GoogleService-Info.plist”可以在
中找到/project/GoogleService-Info.plist
2.4 写“
-p ios
”2.5 拖放:“appDsyms”文件夹(未存档,zip 文件可能无法运行!)通常位于下载文件夹
/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
设置完毕,等待终端上传!
终端示例:
-
通过拖放到终端获取文件或文件夹位置的一种方法:
-
AppStore Connect,下载 dSYM:
如果您仍然想要可以复制和粘贴的现成脚本,问题已经得到很好的回答。给你。
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 \{\}
我创建了关于 dSYM 上传的 Medium Story。
逐步介绍如何使用终端上传
中Link: https://medium.com/@petarlemajic/firebase-dsyms-upload-1cf432c475f7 如果这对某人有帮助,我会很高兴。 干杯!
(2020 年 10 月 21 日)
我在将我的 dsyms 上传到 firebase 时遇到了很多问题,这发生在我更新到 FirebaseCrashlytics 并删除了我的 fabric SDK 之后,在此之前我没有任何问题。我尝试了所有解决方案但没有成功,但在对代码进行了一些更改后终于找到了我的问题。我的 info.plist
文件中似乎有一些冲突的值,并且与 GoogleService-Info.plist
文件中的值不一致。 GoogleService-Info.plist
中的包 ID 应与 info.plist
中的 url 方案相同。进行这些更改后,我手动上传了 DSYM。
这是更新后我的包 ID 在我的项目中的外观示例:
GoogleService-Info.plist
info.plist
然后我希望这个自动化。我将以下脚本添加到 Build Phases > 运行 脚本中,现在我可以像以前使用 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”。
将 Fabric Crashlytics 更新为 Firebase Crashlytics SDK 后。我也遇到了同样的问题(上传 1 个缺失的 dSYM 需要处理 5 个崩溃)。我在以下步骤的帮助下解决了问题:
步骤 1-: 打开目标->构建设置->搜索“调试信息格式”。 将所有 调试信息格式 设置为 DWARF with dSYM File 你的构建类型。
"${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}
根据 firebase 文档,除了上传 dsym
您还可以将应用的构建 Info.plist
位置提供给构建阶段的输入文件字段:
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
转到 developer.apple.com > Activity > iOS 构建 > Select 版本 > 下载 dSYM
更改你的项目路径和你的用户名
运行 此代码在
Terminal
/Users/your-project-path/ios/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/your-project-path/ios/GoogleService-Info.plist -p ios /Users/your-username/Downloads/appDsyms.zip
您将在
Terminal
上看到成功消息。在 15-30 分钟后检查
Firebase Console
上的崩溃日志。
2021 年 3 月
activity 选项卡不再位于 itunesconnect 上,因此要获取 Dsyms 文件,您必须
- 转到 iTunes 连接。
- 我的应用程序。
- Select 特定应用。
- 导航到试飞。
- select 您要为其生成 Dsyms 文件的版本。
- 点击构建元数据。
- 搜索“包含符号”,然后单击然后单击下载。
然后在下载后 运行 终端中的此代码用正确的文件路径替换引用的部分。
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
-gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
感谢他们的作者,顶级解决方案很好。也许这个提示可以帮助某人:当你想通过崩溃你的应用程序来测试你的配置时,在模拟器上使用 Xcode 构建它,然后停止应用程序并直接在模拟器中重新启动它。 正如 firebase 文档所说:初始实例包括一个干扰 Crashlytics 的调试器。 https://firebase.google.com/docs/crashlytics/test-implementation?platform=ios#test_it_out
如果启用位码 = 是
- 前往 App Store Connect
- 转到 iOS 构建并下载 dSYM
- 打开一个终端
- 运行命令
/Users/your-project-path/ios/Pods/FirebaseCrashlytics/upload-symbols -gsp /Users/your-project-path/ios/GoogleService-Info.plist -p ios /Users/your-username/Downloads/appDsyms
- 收到成功消息并在一段时间内刷新 Firebase 控制台后,您将看到反射
注意:将所有构建的 dSYM 文件上传到 Firebase