如何上传使用 Flutter 开发的 dsyms 文件?
Posted
技术标签:
【中文标题】如何上传使用 Flutter 开发的 dsyms 文件?【英文标题】:How to upload dsyms files which developed with Flutter? 【发布时间】:2019-09-06 15:51:37 【问题描述】:我正在开发一款支持 Flutter 的跨平台应用。我为崩溃报告集成了 firebase Crashlytics。在我需要检查报告之前出现一条错误消息
Upload 1 missing dSYM required to process 4 crashes
为此,我尝试了 firebase 文档
Get deobfuscated crash reports
另外,我按照步骤使用颤振构建 ios 存档
Preparing an iOS App for Release
不过,firebase 门户上也存在同样的问题
Upload 1 missing dSYM required to process 4 crashes
我尝试了很多次,但仍然没有完成。
如果有人有想法,请帮我解决这个问题。
感谢社区
【问题讨论】:
您应该在ios
目录中找到the Runner.app.dSYM.zip
。它由 flutter build ios
命令生成,用于发布版本,假设 Crashlytics 设置正确。
我也试过了,但没有完成。
你是如何生成发布包的?
using 在命令行中,在您的应用程序目录中按照以下步骤操作: 运行 flutter build ios 以创建发布版本(flutter build 默认为 --release)。要确保 Xcode 刷新发布模式配置,请关闭并重新打开 Xcode 工作区。对于 Xcode 8.3 及更高版本,此步骤不是必需的。
【参考方案1】:
让您的 Xcode 在您运行/构建应用时自动上传它。
我。打开 Xcode > 目标 > MyProjectName > 构建阶段
添加由每个脚本组成的两个脚本(使用 + 号)
"$PODS_ROOT/FirebaseCrashlytics/run"
"$PODS_ROOT/FirebaseCrashlytics/upload-symbols" -gsp "$PROJECT_DIR/MyProjectName/GoogleService-Info.plist" -p ios "$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME"
重要提示:确保将
MyProjectName
替换为您的项目名称,但保持原样。
二。还要确保在 Targets > MyProjectName > Build settings 中检查这些选项
将调试信息格式设置为DWARF with dSYM file
三。视觉效果
【讨论】:
我做了与你完全相同的配置,但我仍然在 firebase 控制台中收到警告...知道可能出什么问题吗? 注意:这是"$PROJECT_DIR/Runner/GoogleService-Info.plist"
而不是"$PROJECT_DIR/MyProjectName/GoogleService-Info.plist"
(你的截图很好)
@Milvintsiss 屏幕截图是项目名称“Runner”的示例,以便使其相关。
哦,我正在学习一些东西,我从来没有在没有 Flutter 的情况下做过 iOS 项目,所以我认为“Runner”就像 android 中的“app”文件夹,它不能有其他名称 ^^
这不再有效,因为您使用 flutterfire CLI 初始化了 firebase。由于不再使用GoogleService-Info.plist
,因此我尝试将-gsp "[Path to file]"
与-ai "[App ID]"
进行交换。但我仍然收到以下错误:error: Could not get GOOGLE_APP_ID in Google Services file from build environment
。有谁知道我该如何解决这个问题?【参考方案2】:
在准备发布我的应用时,我会采取以下步骤来导出、上传和获取 dSYM:
-
在终端中我运行“flutter build ios --release”
在 xCode 中打开 iOS 项目并将设备切换到“通用 iOS 设备”
从顶部菜单产品>存档
完成后,管理器窗口将显示您存档的构建。您也可以从 Window>Organizer 手动打开此窗口
选择您要上传到 iTunes Connect 的构建并点击分发应用程序并按照流程进行操作
上传完成后,右键单击管理器窗口中的构建,然后单击“在 Finder 中显示”
您应该会在 finder 中看到一个存档文件,右键单击它并单击“显示包内容”。
里面应该有一个名为 dSYM 的文件夹,您可以将其压缩并发送到任何您需要的地方
【讨论】:
【参考方案3】:您也可以使用Fastlane
将其作为发布过程的一部分自动执行。
这是一个可以进入你的Fastfile
的例子
platform :ios do
desc "Upload symbols to Crashlytics"
lane :toCrashlytics do
upload_symbols_to_crashlytics
end
end
然后你可以运行fastlane ios toCrashlytics
来运行它。
请参阅this link 了解更多详情。
【讨论】:
最好的办法!快车道摇滚。【参考方案4】:在构建 Flutter 应用的存档后(使用 Xcode),您可以从 Flutter 应用的 ios
目录(使用 Firebase 的上传工具)运行以下命令:
Pods/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios build/Runner.xcarchive/dSYMs
更改上述命令行以指向正确的 Firebase plist 文件。 -p
标志指定平台(可以是ios
、mac
或tvos
)。上述命令还会查找 App 的存档文件Runner.xcarchive
。
【讨论】:
以上是关于如何上传使用 Flutter 开发的 dsyms 文件?的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 使用“上传脚本”在版本 3.14.0 的 Crashlytics 中上传 Dsym 文件
必须上传一个 dSYM 文件始终显示在 Firebase Crashlytics 中
上传 DSYMS 文件失败。我已经上传了 myapp.app.dSYM 压缩文件,但它再次要求我上传“上传缺少所需的 dSYM”