发布到Google Play
Qt for Android 为Android应用程序的开发、构建和打包提供了一个完整的解决方案。大多数任务,尤其是打包和部署,均由Qt Creator处理,为开发者提供了丰富的体验。
每次您使用Qt Creator运行应用程序时,都会创建一个Android应用程序包(APK)并将其部署到您的目标设备或模拟器。通过一些小的打包设置修改,您可以在Google Play上发布您的应用程序。
构建应用
一旦您的应用程序开发完成,并且您想要将其发布到Google Play,请按照以下说明创建一个.apk
或.aab
文件,该文件可以在Google Play上发布
- 使用Qt Creator打开您的项目,选择
发布构建
。 - 选择项目 > 构建 > 构建Android APK > 创建模板,以创建Android打包模板文件,如
AndroidManifest.xml
,这是主要的关注文件。 - 在
AndroidManifest.xml
中检查以下设置- 设置应用程序名称和应用程序图标。
- 使用清单中的应用程序部分下的
android:label
设置应用程序的名称。 - 通过CMake的属性
QT_ANDROID_VERSION_NAME
和QT_ANDROID_VERSION_CODE
设置应用程序的版本名称和代码。对于qmake,使用ANDROID_VERSION_NAME
和ANDROID_VERSION_CODE
。对于qmake,我们将使用ANDROID_VERSION_CODE
以下内容,以解决发布多ABI应用程序的问题。
有关更多信息,请参阅Qt Android Manifest File Configuration。
- 根据您的应用程序需求设置
minimum
和target
SDK版本。这可以通过CMake属性QT_ANDROID_TARGET_SDK_VERSION
和QT_ANDROID_MIN_SDK_VERSION
完成。或者对于qmakeANDROID_TARGET_SDK_VERSION
ANDROID_MIN_SDK_VERSION
。注意:如同Qt 5.15一样,您可以在
AndroidManifest.xml
中指定这些设置。请注意,如果在上面的设置中设置,CMake和qmake属性将覆盖这些。有关在build.gradle
中设置这些信息的更多信息,请参阅Android: App Versioning。 - 设置一个密钥库来签名义件。如果您没有,可以创建一个新的密钥库。有关更多信息,请参阅签名Android包。
- 定位生成的包
- 对于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
- 对于APK包,在以下位置定位
将应用上传到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