Quasar 负责构建 Web 应用并准备 Cordova 项目。Android Studio、Xcode、Cordova 的平台工具和应用商店门户负责签名和提交。
Android 发布
要为 Android 生成发布版本构建,可以使用以下 Quasar CLI 命令:
quasar build -m cordova -T android
# 或简写形式:
quasar build -m android这将根据 /src-cordova/config.xml 中的设置生成发布版本构建。
接下来,在 “/src-cordova/platforms/android/app/build/outputs/apk/release” 或等效路径(终端输出中会写明)找到未签名的 APK 文件。文件名通常以 “-release-unsigned.apk” 结尾。现在需要对未签名 APK 进行签名并运行对齐工具来优化它,为上架应用商店做准备。如果你已有签名密钥,可以跳过这些步骤直接使用已有密钥。
让我们使用 JDK 附带的 keytool 命令生成私钥。如果找不到此工具,请参考安装指南:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 20000系统会先提示你为 keystore 创建密码。然后回答该工具的其余问题,全部完成后,你应该在当前目录下看到一个名为 my-release-key.keystore 的文件。
WARNING
- 将 keystore 及其密码保存在版本控制和构建日志之外。将加密备份与源代码仓库分开存放,并限制只有负责签名的人员或发布系统才能访问。丢失签名密钥可能导致无法发布更新;泄露它则可能让他人以你的应用名义签署恶意版本。
- 应用商店政策、目标 SDK 要求、签名流程和开发者计划细节会定期变化。请以下方链接的平台文档为准。
在创建发布版本之前:
- 提交或备份
/src-cordova下的原生改动 - 移除仅用于开发的接口端点、日志和权限
- 设置发布版本号和平台特定的构建号
- 验证图标、启动画面、隐私声明、插件、权限以及生产环境服务
- 在真机设备上测试发布构建
Google Play
准备 Cordova 项目并打开 Android Studio:
quasar build -m cordova -T android --ide在 Android Studio 中,使用 Build > Generate Signed Bundle / APK。Google Play 通常要求提交 Android App Bundle(.aab)。配置发布签名密钥,并安全备份密钥及其凭据。
通过 /quasar.config > cordova > version 或 /package.json > version 设置共享应用版本。当需要控制 Android 单调递增的版本代码时,设置 cordova.androidVersionCode。
在 Google Play Console 中创建或更新应用,完成政策和商店列表要求,将签名 bundle 上传到测试轨道,测试通过后再推广发布。
参考 Android 当前的指南:签名应用、准备发布、在 Google Play 发布。另请查阅已安装 cordova-android 版本的发布文档。
Apple App Store
Apple 发布需要 macOS、Xcode 和 Apple Developer Program 成员资格。准备 Cordova 项目并打开 Xcode:
quasar build -m cordova -T ios --ide当项目使用 CocoaPods 时,打开生成的 workspace。在 Xcode 中:
- 选择 App target,在 Signing & Capabilities 中配置正确的团队和 bundle identifier。
- 设置面向用户的版本号和构建号。每次上传需要唯一的构建号。
- 选择通用设备或连接的 iOS 设备作为目标。
- 选择 Product > Archive。
- 在 Organizer 中,验证并分发 archive 到 App Store Connect。
在 App Store Connect 中创建应用记录,选择已上传的构建版本,完成隐私和商店元数据,通过 TestFlight 测试,然后提交审核。
参考 Apple 当前的文档:通过 App Store 分发应用、上传构建、提交审核。另请查阅已安装 cordova-ios 版本的发布文档。
命令行构建
不使用 --ide 时,Quasar 会调用 cordova build 并将识别到的原生输出复制到 /dist/cordova/<target> 目录下。使用 cordova.getCordovaBuildParams 自定义签名参数或非标准构建命令,使用 cordova.getCordovaBuildOutputFolder 指定平台将产物写入其他位置的情况。