gpt4 book ai didi

android - Qt Android : Why is a QtApp-debug. apk 为发布版本创建?

转载 作者:可可西里 更新时间:2023-11-01 16:01:40 26 4
gpt4 key购买 nike

我在发布版本中构建我的 Qt/C++ Android 应用程序,但是生成了以下 APK 文件:

Release/android-build/bin/QtApp-debug.apk
Release/android-build/bin/QtApp-debug-unaligned.apk

我找到了 this question这意味着 APK 文件是在 Debug模式下构建的,即使对于 Release 构建也是如此。那里的答案暗示发布版本只有在您拥有证书时才有可能。

我按照那里的说明进行操作,实际上在创建证书后,我得到了这些文件:

Release/android-build/bin/QtApp-release.apk
Release/android-build/bin/QtApp-release-unsigned.apk

为什么我需要证书才能创建 Release APK,如果没有证书,Release build 和 Debug build 之间是否有区别,还是它们都包含未优化的代码?

编辑:鉴于已发布的答案,我想澄清一下,我想问的是,为什么 Qt Creator 不需要证书 来编译 C++关闭优化并添加调试信息的代码?

最佳答案

这似乎是 Qt Creator 构建过程中的错误。 C++ 文件会根据选定的构建配置按应有的方式进行编译(在 Release模式下进行了优化并且没有调试信息)。所以无论你的 APK 名为 QtApp-debug.apk,里面的二进制文件都是按照你的选择编译的。

调用androiddeployqt时出现问题。如果您查看 source ,如果它收到 --release 或当它收到 --sign 时,它会创建一个发布包。 Qt Creator 从不传递 --release,因此它会按应有的方式编译文件,但是 androiddeployqt 仅在您使用证书时生成发布 APK,因为 Qt Creator 通过 --签名

androiddeployqt创建调试包有什么区别:

  • 包名
  • 它包含一个 gdbserver 二进制文件(在 arm-v7 上大约 250 KB)
  • 它用“调试”而不是“发布”调用ant。这就是让您的 apk 使用调试 key 签名的原因

没有证书不会关闭优化和添加调试信息,它只是创建一个调试包,带有调试签名,如果您不添加自己的签名,则这是必需的。所以毕竟,也许这不是错误。

关于android - Qt Android : Why is a QtApp-debug. apk 为发布版本创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23028313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com