Qt Android:为什么QtApp-debug.apk为发布版本创build?

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

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

我发现这个问题意味着即使是发布版本,APK文件也是以debugging模式构build的。 那里的答案意味着只有拥有证书才能发布版本。

我遵循那里的指示,而且确实在创build证书后,我得到这些文件:

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

为什么我需要一个证书才能创build一个发布APK,如果没有证书,发布版本和debugging版本之间是否有区别,还是都包含未经优化的代码?

编辑:根据发布的答案,我想澄清,我问为什么没有证书需要 Qt Creator编译C + +代码closures优化和debugging信息添加?

Solutions Collecting From Web of "Qt Android:为什么QtApp-debug.apk为发布版本创build?"

这似乎是Qt Creator构build过程中的一个错误。 根据选定的构buildconfiguration(优化和释放模式上没有debugging信息),C ++文件按照它们应该进行编译。 所以不pipe你的APK被命名为QtApp-debug.apk,里面的二进制文件都是按照你的select进行编译的。

调用androiddeployqt时出现问题。 如果你看源代码 ,它会创build一个发布包,如果它收到 – --release或者收到 – --sign 。 Qt Creator从来没有通过--release ,所以它编译文件,因为它应该,但androiddeployqt只生成一个释放APK当你使用的证书,因为Qt的创造者通过 – --sign

androiddeployqt创build一个debugging包有什么区别:

  • 包名称
  • 它包含一个gdbserver二进制文件(arm-v7上的aprox 250 KB)
  • 它调用ant与“debugging”,而不是“释放”。 这是什么让你的apk签名一个debugging键

没有证书不closures优化和添加debugging信息,它只是创build一个debugging包,debugging签名,这是必要的,如果你不添加自己的。 毕竟,也许这不是一个错误。

该应用需要证书才能发布到Google Play。 这个证书标识了应用程序和作者,所以你可以更新应用程序。

重要提示:不要丢失用于发布应用程序的密钥,否则无法再更新它。

您可以在发布和debugging模式下对应用程序进行签名,Android SDK允许对其进行签名以进行debugging,但是您需要自己的密钥才能签名。 发布模式是转到Google Play的模式。

有关Android应用程序的发布过程的很好的文档。 你可以看看更详细的信息在这里: http : //developer.android.com/tools/publishing/preparing.html和在这里: http : //developer.android.com/tools/publishing/app-signing.html

与Release / Debug之间的差异有关,我不确定,但我的猜测是,它只会涉及到Qt库,而不是在构build过程中生成的Android本地代码,你可以看看它的大小编译版本的更好的图片。