发布到Google Play

Qt for Android 为Android应用程序的开发、构建和打包提供了一个完整的解决方案。大多数任务,尤其是打包和部署,均由Qt Creator处理,为开发者提供了丰富的体验。

每次您使用Qt Creator运行应用程序时,都会创建一个Android应用程序包(APK)并将其部署到您的目标设备或模拟器。通过一些小的打包设置修改,您可以在Google Play上发布您的应用程序。

构建应用

一旦您的应用程序开发完成,并且您想要将其发布到Google Play,请按照以下说明创建一个.apk.aab文件,该文件可以在Google Play上发布

  1. 使用Qt Creator打开您的项目,选择发布构建
  2. 选择项目 > 构建 > 构建Android APK > 创建模板,以创建Android打包模板文件,如AndroidManifest.xml,这是主要的关注文件。
  3. AndroidManifest.xml中检查以下设置
    • 设置应用程序名称应用程序图标
    • 使用清单中的应用程序部分下的android:label设置应用程序的名称。
    • 通过CMake的属性QT_ANDROID_VERSION_NAMEQT_ANDROID_VERSION_CODE设置应用程序的版本名称和代码。对于qmake,使用ANDROID_VERSION_NAMEANDROID_VERSION_CODE。对于qmake,我们将使用ANDROID_VERSION_CODE以下内容,以解决发布多ABI应用程序的问题。

    有关更多信息,请参阅Qt Android Manifest File Configuration

  4. 根据您的应用程序需求设置minimumtarget SDK版本。这可以通过CMake属性QT_ANDROID_TARGET_SDK_VERSIONQT_ANDROID_MIN_SDK_VERSION完成。或者对于qmake ANDROID_TARGET_SDK_VERSION ANDROID_MIN_SDK_VERSION

    注意:如同Qt 5.15一样,您可以在AndroidManifest.xml中指定这些设置。请注意,如果在上面的设置中设置,CMake和qmake属性将覆盖这些。有关在build.gradle中设置这些信息的更多信息,请参阅Android: App Versioning

  5. 设置一个密钥库来签名义件。如果您没有,可以创建一个新的密钥库。有关更多信息,请参阅签名Android包
  6. 定位生成的包
    • 对于APK包,在以下位置定位.apk
      <build_path>/android-build/build/outputs/apk/release/android-build-release.apk

      注意:在Qt Creator中,选择项目 > 构建 > 构建步骤 > 构建Android APK > 构建后打开包位置,以构建应用的.apk并打开包含包的目录。

    • 对于AAB包,选择项目 > 构建 > 构建步骤 > 构建Android APK > 构建.aab(Android App Bundle),以让Qt Creator生成.aab文件,然后定位包在
      <build_path>/android-build/build/outputs/bundle/release/android-build-release.aab

将应用上传到Google Play商店

登录到Google Play开发者控制台并上传.aab文件,以及类似应用使用的描述和屏幕截图。

多ABI包

对于支持构建多ABI包的Qt版本,上传包含所有支持的架构的单个.aab包就足够了。Qt 6.7仅通过CMake支持构建多ABI包。更多信息,请参阅QT_ANDROID_ABIS

单ABI包

但是,对于没有多ABI构建支持的Qt版本,出版您的应用需要额外的步骤。《qmake》在Qt 6.7中属于这一类。

要出版使用单个ABI工具链构建的应用,您需要确保每个ABI使用不同的内部版本号。版本号是您应用程序发布的内部非公开标识符。构建您要支持的每个架构,并为每个ABI设置不同的版本号。对于qmake,可以执行以下操作

ANDROID_VERSION_CODE = <unique_version>

应用程序开发者可以使用特定于版本号的方案。例如,代码可以包含用于平台、ABI和实际版本的块。然后,一个示例方案将是<平台><ABI><应用程序版本>

  • 平台
    • 1为ARM
    • 2为Intel
  • 体系结构
    • 32为32位
    • 64为64位

对于arm64-v8a ABI发布版本1.0的结果版本号将是16410

更多信息,请参阅Google关于应用版本的文档。

下面的截图显示了针对4个ABIs的应用程序示例,每个包都使用唯一的版本号,这与公共版本字符串不同的版本名称。

另请参阅:在Android上部署应用程序

© 2024 Qt公司 Ltd. 本文档中的贡献内容均为各自所有者的版权。本提供的文档根据自由软件基金会发布的条款,受©GNU自由文档许可协议第1.3版的许可。Qt及其相关商标是Qt公司 Ltd.在芬兰和/或其他世界国家的商标。所有其他商标均为其各自所有者的财产。GNU自由文档许可协议版本1.3