从 Capacitor 5 更新到 Capacitor 6
Capacitor 5 和 6 之间的破坏性变化被设计为非常少。在本指南中,您将找到将项目更新到当前 Capacitor 6 版本的步骤,以及我们官方插件的破坏性更改列表。
NodeJS 18+
Node 16 自 2023 年 9 月 11 日起已达到生命周期终点。Capacitor 6 需要 NodeJS 18 或更高版本。(建议使用最新的 LTS 版本。)
使用 CLI 迁移
将 latest-6 版本的 Capacitor CLI 安装到您的项目:
npm i -D @capacitor/cli@latest-6
安装后,只需运行以下命令即可让 CLI 为您处理迁移:
npx cap migrate
如果迁移的任何步骤无法完成,终端输出中将提供额外信息。下面列出了手动迁移的步骤。
使用 VS Code 扩展迁移
如果您安装了 VS Code 扩展,只需查看扩展的 recommendations 部分,找到将项目迁移到 Capacitor 6 的选项。
iOS
以下指南描述了如何将您的 Capacitor 5 iOS 项目升级到 Capacitor 6。
升级 Xcode
Capacitor 6 需要 Xcode 15.0+。
SPM 支持
从使用 CocoaPods 转换到 SPM 是一个相当大的主题,我们将在另一篇文章中介绍,即将推出。
注册自定义插件
在 Capacitor 6 中,插件类不再自动注册。对于通过 npm 安装的插件,CLI 将生成一个插件类列表,以编程方式注册它们。但是,遵循自定义代码指南创建未通过 npm 分发的本地插件的用户,将需 要创建自定义视图控制器并注册他们的插件。
缩放
为了与 Android 行为匹配,iOS 应用默认不再可缩放。要启用缩放,请查看 zoomEnabled 配置选项。
Android
以下指南描述了如何将您的 Capacitor 5 Android 项目升级到 Capacitor 6。
升级 Android Studio
Capacitor 6 需要 Android Studio Hedgehog | 2023.1.1 或更新版本,因为使用了 Gradle 8.2。
更新后,Android Studio 可以协助处理一些与 gradle 相关的更新以及将包移动到构建文件中。要开始,请运行 Tools -> AGP Upgrade Assistant。

更新 Android 项目变量
在您的 variables.gradle 文件中,将值更新为以下新的最小值:
minSdkVersion = 22
compileSdkVersion = 34
targetSdkVersion = 34
androidxActivityVersion = '1.8.0'
androidxAppCompatVersion = '1.6.1'
androidxCoordinatorLayoutVersion = '1.2.0'
androidxCoreVersion = '1.12.0'
androidxFragmentVersion = '1.6.2'
coreSplashScreenVersion = '1.0.1'
androidxWebkitVersion = '1.9.0'
junitVersion = '4.13.2'
androidxJunitVersion = '1.1.5'
androidxEspressoCoreVersion = '3.5.1'
cordovaAndroidVersion = '10.1.1'
更新 google services 插件
# build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:8.0.0'
- classpath 'com.google.gms:google-services:4.3.15'
+ classpath 'com.google.gms:google-services:4.4.0'
更新 gradle 插件到 8.2.1
# build.gradle
dependencies {
- classpath 'com.android.tools.build:gradle:8.0.0'
+ classpath 'com.android.tools.build:gradle:8.2.1'
更新 gradle wrapper 到 8.2.1
# gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
- distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
更新 androidScheme
在 Capacitor 6 中,https 是现有应用的 androidScheme 的默认设置,以更好地使 Capacitor 应用能够利用系统的自动填充功能。
更改 scheme 相当于在不同的域名上发布您的应用,这意味着存储在 cookies、localstorage 等中的数据将不再可访问。为避免因这次更改而导致数据丢失,如果您尚未在 Capacitor 配置文件中将 androidScheme 条目设置为 https,则应将 scheme 设置为 http。
{
server: {
androidScheme: 'http';
}
}
如果您已经将 androidScheme 条目设置为 https,现在可以安全地移除它。