Flutter 混淆上传调试符号没有意义?
Flutter is it meaningless to upload debug symbols on obfuscating?
我已将 flutter 混淆包上传到 Play 商店。我收到以下警告:
This App Bundle contains native code, and you've not uploaded debug
symbols. We recommend that you upload a symbol file to make your
crashes and ANRs easier to analyse and debug.
混淆您的应用程序然后添加调试符号不是毫无意义吗?
混淆背后的想法是通过使代码不可读来进行困难的逆向工程。给一个调试符号文件和给一个解密混淆图一样吗?
混淆就是将人类可读的 classes 和函数重命名为对人类无意义的东西。机器不关心名称,但试图对您的代码进行逆向工程的人会遇到更多困难。
另一方面,当您的应用程序崩溃时,Google Play Developer Console 会记录这次崩溃,供您检查和调试。但由于最终用户使用的是混淆版本的应用程序,因此发送给您的报告使用无意义的名称编写,您无法对其进行调试。
现在,Play 控制台在内部使用调试符号映射将崩溃报告重新符号化为人类可读的 class 名称,以便您可以轻松调试它。
TLDR:上传调试符号。它们允许您(开发人员)调试使用过的崩溃报告,并且仅(间接)提供给您,而不是试图对您的应用进行逆向工程的人
我已将 flutter 混淆包上传到 Play 商店。我收到以下警告:
This App Bundle contains native code, and you've not uploaded debug symbols. We recommend that you upload a symbol file to make your crashes and ANRs easier to analyse and debug.
混淆您的应用程序然后添加调试符号不是毫无意义吗?
混淆背后的想法是通过使代码不可读来进行困难的逆向工程。给一个调试符号文件和给一个解密混淆图一样吗?
混淆就是将人类可读的 classes 和函数重命名为对人类无意义的东西。机器不关心名称,但试图对您的代码进行逆向工程的人会遇到更多困难。
另一方面,当您的应用程序崩溃时,Google Play Developer Console 会记录这次崩溃,供您检查和调试。但由于最终用户使用的是混淆版本的应用程序,因此发送给您的报告使用无意义的名称编写,您无法对其进行调试。
现在,Play 控制台在内部使用调试符号映射将崩溃报告重新符号化为人类可读的 class 名称,以便您可以轻松调试它。
TLDR:上传调试符号。它们允许您(开发人员)调试使用过的崩溃报告,并且仅(间接)提供给您,而不是试图对您的应用进行逆向工程的人