如何调试已发布的本机应用(C ++)?

时间:2019-03-22 09:19:59

标签: android debugging google-play publishing

我需要在Google Play中发布使用QT / C ++制作的应用。在Google Play中开发和测试Beta时,我使用了调试版本和大量日志来发现错误。我要么通过adb连接到测试人员的设备,要么要求他们向我发送存储在系统“下载”目录中的日志。如果我的应用发布了,我会担心几个问题:

  1. 我觉得必须发布发行版本。我会在Google Play控制台中获取本机应用的核心转储版本吗?如果这样做,恐怕没有调试信息也将毫无用处。
  2. 发布调试版本不是一个好主意吗?是否有对本机代码或二进制文件的混淆支持?如果是这样,这是否有助于我仍然获得核心转储和/或调试日志,同时防止对应用程序进行反向工程?
  3. 我正在考虑登录文件并捕获SIGSEGV,并使用http POST请求将日志文件发送到我们的服务器。您看到此解决方案有哪些缺点/问题?
  4. 您建议使用哪些其他技术来帮助跟踪和修复已发布应用程序中的问题?

2 个答案:

答案 0 :(得分:0)

您可以使用其他技术或功能(例如Firebase或Fabric)进行崩溃报告以及其他无需发送日志的内容。每当发生崩溃时,它们还将提供日志

为获得更好的性能,请禁用生产版本中的所有日志

答案 1 :(得分:0)

解决方案:1:是的,您可以通过将所有调试日志更改为错误日志(Log.d()-> Log.e())来执行此操作。因为调试日志在Release版本中不可见,但是您可以看到任何版本的错误日志。希望它会有所帮助。

解决方案2::您可以使用Fabric并查看到Fabric帐户的所有日志。这可以通过使用其Answer module来完成。

注意:我在现场项目中都使用了这两种方案,它们都工作正常。