相比之前的更新,Capacitor 4 到 Capacitor 5 的过渡涉及最小的破坏性更改。这份指南提供了逐步的更新指南,帮助您将项目升级到 Capacitor 5,另外还列出了官方插件的破坏性更改。
注意:Capacitor 5 需要 NodeJS 16 或更高版本,因为 Node 12 已经到达了末端生命期,Node 14 将于 2023 年 4 月 30 日到达末端生命期。建议使用 NodeJS 的最新 LTS 版本。
-
安装项目中使用的
latestCapacitor CLI 的版本:npm i -D @capacitor/cli@latest -
运行以下命令,让 CLI 处理迁移:
npx cap migrate如果任何迁移步骤无法实现,终端输出中会提供额外的信息。手动迁移步骤如下:
-
如果您安装了 VS Code 扩展,检查扩展的推荐部分以找到迁移项目到 Capacitor 5 的选项。
将 Capacitor 4 iOS 项目升级到 Capacitor 5
-
升级 Xcode:Capacitor 5 需要 Xcode 14.1+。
-
更新 .gitignore: 请对以下文件进行以下修改
.gitignorefile:- App/Podfile.lock + App/output -
更新 Assets 以使用单个应用图标: Xcode 14 支持单个应用图标 1024x1024。清理 AppIcon.appiconset 中的所有不必要的大小。
将 Capacitor 4 个 Android 项目升级到 Capacitor 5
-
升级 Android Studio: Capacitor 5 需要 Android Studio Flamingo | 2022.2.1 或更高版本,因为使用 Gradle 8 需要 Java JDK 17。Java 17 与 Android Studio Flamingo 一起提供,因此无需额外下载。
-
运行 AGP Upgrade 助手: Android Studio 可以帮助一些与 Gradle 和将包移动到构建文件相关的更新。要开始,请运行
Tools -> AGP Upgrade Assistant. -
更新 Android 项目变量: 在您的
variables.gradle文件中,更新您的值以以下新最低值:minSdkVersion = 22 compileSdkVersion = 33 targetSdkVersion = 33 androidxActivityVersion = '1.7.0' androidxAppCompatVersion = '1.6.1' androidxCoordinatorLayoutVersion = '1.2.0' androidxCoreVersion = '1.10.0' androidxFragmentVersion = '1.5.6' coreSplashScreenVersion = '1.0.0' androidxWebkitVersion = '1.6.1' junitVersion = '4.13.2' androidxJunitVersion = '1.1.5' androidxEspressoCoreVersion = '3.5.1' cordovaAndroidVersion = '10.1.1' -
更新 Google 服务:
# build.gradle dependencies { - classpath 'com.google.gms:google-services:4.3.13' + classpath 'com.google.gms:google-services:4.3.15' } -
更新 Gradle 插件到 8.0.0:
# build.gradle dependencies { - classpath 'com.android.tools.build:gradle:7.2.1' + classpath 'com.android.tools.build:gradle:8.0.0' } -
更新 Gradle 包装器到 8.0.2:
# gradle-wrapper.properties distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists - distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip + distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -
禁用 Jetifier:
# gradle.properties android.useAndroidX=true - android.enableJetifier=true -
将包移动到
build.gradle:# AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> - <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="[YOUR_PACKAGE_ID]"> + <manifest xmlns:android="http://schemas.android.com/apk/res/android"># build.gradle android { + namespace "[YOUR_PACKAGE_ID]" compileSdkVersion rootProject.ext.compileSdkVersion -
更新 androidScheme:在 Capacitor 6 中
https将成为androidScheme为现有应用程序改善Capacitor应用程序使用系统 Autofill 功能的能力。为了避免由于此更改而导致的数据丢失,请将方案设置为http现在,即使它是当前默认值{ server: { androidScheme: "http" } } -
更新 Kotlin 版本:如果您的项目使用 Kotlin,则更新
kotlin_version变量到'1.8.20'.
插件功能变更
以下插件功能已被修改或删除。请更新您的code:
- Action Sheet
- 浏览器
- 摄像头
- 设备
- 地理位置
- Google Maps
- 本地通知
- 推送通知
- 状态栏
[Action Sheet]
- 更新
androidxMaterialVersion变量为1.8.0.
浏览器
- 更新
androidxBrowserVersion变量为1.5.0.
相机
- 为了 Android 13,添加读取媒体图像权限(
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>)在AndroidManifest.xml. - 更新
androidxMaterialVersion变量为1.8.0. - 更新
androidxExifInterfaceVersion__CAPGO_KEEP_0__1.3.6.
__CAPGO_KEEP_1__
- __CAPGO_KEEP_2__
DeviceId.uuid__CAPGO_KEEP_3__DeviceId.identifier. - __CAPGO_KEEP_4__
DeviceInfo.name__CAPGO_KEEP_5__ __CAPGO_KEEP_6__.
__CAPGO_KEEP_7__
- __CAPGO_KEEP_8__
playServicesLocationVersion__CAPGO_KEEP_9__21.0.1.
__CAPGO_KEEP_10__
- __CAPGO_KEEP_11__
googleMapsPlayServicesVersion到18.1.0.googleMapsUtilsVersion到3.4.0.googleMapsKtxVersion到3.4.0.googleMapsUtilsKtxVersion到3.4.0.kotlinxCoroutinesVersion到1.6.4.androidxCoreKTXVersion到1.10.0.kotlin_version到1.8.20.
本地通知
- 为了 Android 13,需要在目标 SDK 33 时进行本地通知的新运行时权限检查。请调用
checkPermissions()和requestPermissions()相应的。推送通知
本地通知
- 为了 Android 13,需要在目标 SDK 33 中添加一个新的运行时权限检查,以接收推送通知。调用
checkPermissions()和requestPermissions()根据这些步骤更新你的 __CAPGO_KEEP_0__,你应该现在已经成功地更新了你的项目从 __CAPGO_KEEP_1__ 4 到 __CAPGO_KEEP_2__ 5。确保测试你的应用程序彻底,以确保所有功能和插件都正常工作。 - 继续从 Updating from __CAPGO_KEEP_0__ 4 to __CAPGO_KEEP_1__ 5: A Step-by-Step Guide
firebaseMessagingVersion如果你正在使用23.1.2.
Updating from __CAPGO_KEEP_0__ 4 to __CAPGO_KEEP_1__ 5: A Step-by-Step Guide
- 来规划原生插件工作,连接它
FADE.
By following these steps and updating your code accordingly, you should now have successfully updated your project from Capacitor 4 to Capacitor 5. Make sure to test your application thoroughly to ensure that all features and plugins are working as expected.
按照这些步骤和更新你的 Capacitor,你应该现在已经成功地更新了你的项目从 Capacitor 4 到 __CAPGO_KEEP_2__ 5。确保测试你的应用程序彻底,以确保所有功能和插件都正常工作。
状态栏:On Android,状态栏的背景色可以通过主题设置。 Updating from Capacitor 4 to Capacitor 5: A Step-by-Step Guide 状态栏:On iOS,状态栏的背景色可以通过主题设置。 Capgo 插件目录 为产品工作流程在 Capgo 插件目录中 Capacitor 插件由 Capgo 为实现细节在 Capacitor 插件由 Capgo 中 添加或更新插件 为实现细节在添加或更新插件中 Ionic 企业插件替代品 为产品工作流程在 Ionic 企业插件替代品中 Capgo 原生构建 为产品工作流程在 Capgo 原生构建中