从 Capacitor 5 升级到 Capacitor 6
Capacitor 5 和 6 之间的破坏性变更设计得极为有限。本指南将详细介绍如何将项目升级至当前 Capacitor 6 版本,并列出了官方插件的破坏性变更清单。
NodeJS 18+
Node 16 已于 2023 年 9 月 11 日终止支持。Capacitor 6 需要 NodeJS 18 或更高版本(推荐使用最新的 LTS 版本)。
使用 CLI 进行迁移
将 Capacitor CLI 的 latest
版本安装到项目中:
npm i -D @capacitor/cli@latest
安装完成后,只需运行以下命令让 CLI 自动处理迁移:
npx cap migrate
如果迁移过程中有任何步骤无法完成,终端输出中会提供额外信息。下方列出手动迁移的具体步骤。
使用 VS Code 扩展进行迁移
如果已安装 VS Code 扩展,只需在扩展的推荐部分找到将项目迁移到 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
由于使用了 Gradle 8.2,Capacitor 6 需要 Android Studio Hedgehog | 2023.1.1 或更新版本。
升级后,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 服务插件
# 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'