如何上传用Flutter开发的dsyms文件?

How to upload dsyms files which developed with Flutter?

我正在开发一款支持 flutter 的跨平台应用程序。我为崩溃报告集成了 firebase Crashlytics。在我需要检查报告之前,出现一条错误消息

Upload 1 missing dSYM required to process 4 crashes

为此,我尝试了 firebase 文档

Get deobfuscated crash reports

另外,我按照步骤构建 iOS Archive with flutter

Preparing an iOS App for Release

不过,在 firebase 门户网站上也存在同样的问题

Upload 1 missing dSYM required to process 4 crashes

我试了很多次了,还是没做。

如果有人有想法,请帮我解决这个问题。

感谢社区

在准备发布我的应用程序时,我采取了以下步骤来导出、上传和获取 dSYM:

  1. 在航站楼 I 运行 'flutter build ios --release'
  2. 打开xCode中的iOS项目,将设备切换到'Generic iOS Device'
  3. 从顶部菜单产品>存档
  4. 完成后,管理器 window 将显示您的存档构建。您也可以从 Window>Organizer
  5. 手动打开此 window
  6. 选择要上传到 iTunes Connect 的版本并点击分发应用程序并按照流程进行操作
  7. 上传完成后,右键单击管理器中的构建 window,然后单击 'Show in Finder'
  8. 您应该会在 finder 中看到一个存档文件,右键单击它并单击 'Show Package Contents'。
  9. 里面应该有一个叫做dSYM的文件夹,你可以压缩并发送到任何你需要的地方

您可以使用 Fastlane 将此作为发布过程的一部分自动执行。 这是一个可以进入您的 Fastfile

的示例
platform :ios do
  desc "Upload symbols to Crashlytics"
  lane :toCrashlytics do
    upload_symbols_to_crashlytics
  end
end

那你就可以运行fastlane ios toCrashlytics到运行了。

有关详细信息,请参阅 this link

为您的 Flutter 应用构建存档(使用 Xcode)后,您可以 运行 从您的 Flutter 应用的 ios 目录(使用 Firebase 的上传工具)执行以下命令:

Pods/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios build/Runner.xcarchive/dSYMs

更改上述命令行以指向正确的 Firebase plist 文件。 -p 标志指定平台(可以是 iosmactvos)。上面的命令还会查找 App 的存档文件 Runner.xcarchive.

让您的 Xcode 在您 run/build 您的应用程序时自动上传它。

我。打开 Xcode > 目标 > MyProjectName > 构建阶段

添加两个脚本(使用 + 号),每个脚本都包含这些

  1. "${PODS_ROOT}/FirebaseCrashlytics/run"

  2. "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/MyProjectName/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

Important: Make sure to replace MyProjectName with your project name but leave rest as it is.

二.还要确保在 Targets > MyProjectName > Build settings

中检查这些选项

调试信息格式设置为带有dSYM文件的DWARF

三。视觉效果

目前,推荐的方法是添加一个 运行 脚本阶段,在每次构建时将 dSYM 上传到 Crashlytics。

  1. 来自Xcode,select 运行来自项目导航。
  2. Select Build Phases 选项卡,然后单击 + > New 运行 Script Phase。
  3. 将以下内容添加到 Shell 属性 下方的键入脚本... 文本框:
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai <googleAppId>
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai <googleAppId>

从您生成的 DefaultFirebaseOptions 文件 (appId) 或从 Firebase 控制台 -> 项目设置 -> 您的应用中检索您的 <googleAppId>

取自here