应用商店提交由原生 Android 和 iOS 工具链处理。Quasar 负责构建 Web 应用并同步 Capacitor 项目;Android Studio、Xcode 和应用商店门户负责签名、打包和提交。
Android 发布
要为 Android 生成发布版本构建,可以使用以下 Quasar CLI 命令:
quasar build -m capacitor -T android这将编译 Web 资源(如果还指定了 “–ide” 参数,则会打开 Android Studio IDE,你需要在其中触发发布构建)。
接下来,找到 Android Studio 生成的未签名 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-capacitor下的原生改动 - 移除仅用于开发的接口端点、日志和权限
- 设置原生版本号和构建号
- 验证图标、启动画面、隐私声明、权限以及生产环境服务
- 在真机设备上测试发布构建
Google Play
构建 Web 资源,同步 Capacitor,然后打开 Android Studio:
quasar build -m capacitor -T android --ide在 Android Studio 中,使用 Build > Generate Signed Bundle / APK。Google Play 通常要求提交 Android App Bundle(.aab)。配置发布签名密钥,并安全备份密钥及其凭据;丢失上传密钥可能会影响后续发布。
在 /src-capacitor/android/app/build.gradle(或 build.gradle.kts,取决于生成的项目)中设置 Android 发布版本:
versionCode是一个整数,每次上传到 Play 商店时必须递增。versionName是面向用户展示的版本号。
然后在 Google Play Console 中创建或更新应用,完成政策和商店列表要求,将签名 bundle 上传到测试轨道,测试通过后再推广发布。
参考 Android 当前的指南:签名应用、准备发布、在 Google Play 发布。
Apple App Store
Apple 发布需要 macOS、Xcode 和 Apple Developer Program 成员资格。构建 Web 资源,同步 Capacitor,然后打开 Xcode:
quasar build -m capacitor -T ios --ide在 Xcode 中:
- 选择 App target,在 Signing & Capabilities 中配置正确的团队和 bundle identifier。
- 设置面向用户的版本号和构建号。每次上传需要唯一的构建号。
- 选择通用设备或连接的 iOS 设备作为目标。
- 选择 Product > Archive。
- 在 Organizer 中,验证并分发 archive 到 App Store Connect。
在 App Store Connect 中创建应用记录,选择已上传的构建版本,完成隐私和商店元数据,通过 TestFlight 测试,然后提交审核。
参考 Apple 当前的文档:通过 App Store 分发应用、上传构建、提交审核。
命令行原生构建
不使用 --ide 时,Quasar 会调用 Gradle 或 xcodebuild,并将原生输出收集到 /dist/capacitor/<target> 目录下。签名要求仍然来自原生项目和平台工具链。对于应用商店发布,打开 IDE 通常是选择签名身份、检查警告、归档和上传构建的最清晰方式。