如何为模糊的Flutter Android应用程序bundle提供符号



我有一个针对Android的Flutter应用程序。我曾经使用以下命令构建应用程序捆绑包:

flutter build appbundle --release 

然后,我会从buildappintermediatesmerged_native_libsreleaseoutlib文件夹中压缩并上传本机调试符号。

我正在尝试使用模糊处理,所以我切换到了这个命令:

flutter build appbundle --release --obfuscate --split-debug-info=./build/symbols

这是有效的,它在我的";构建/符号";文件夹:

  • app.android-arm.symbols
  • app.android-arm64.symbol
  • app.android-x64.symbol

当我将这三个文件压缩到symbols.zip文件中并使用upload native debug symbols到Play Store时,它们会被拒绝,并出现以下错误:

本机调试符号包含一个意外文件:app.android-x64.symbol。app.android-arm64.symbol。app.android-arm.symbols.

我仍然可以像以前一样从buildappintermediatesmerged_native_libsreleaseoutlib上传符号。

有人能解释一下这两组符号文件之间的区别吗?我应该在商店提交中使用什么?

我一直在研究这些主题,我发现了不同之处。

颤振应用程序中有两种类型的模糊处理:

  1. 本地库(java、kotlin等(代码
  2. dart库(所有dart代码(

当您将buildappintermediatesmerged_native_libsreleaseoutlib上传到播放控制台时,它用于消除本机库的模糊
此zip也称为本机调试符号。

因此,当本机代码发生崩溃时,这些符号将被Play控制台用于消除Stack-trace的模糊。

另一方面,由flutter命令创建的*.symbols文件(在您的案例中是build/symbols文件夹中的文件(是用来消除dart代码模糊的调试符号。

它们将用于消除与dart代码崩溃相关的Stack-trace的模糊。你会在Firebase Crashlytics中看到这些崩溃。

要将这些符号上传到Firebase,请使用以下命令:

firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols

在您的情况下,PATH/TO/symbols将是build/symbols

相关内容

最新更新