Compared to previous updates, the transition from Capacitor 4 to Capacitor 5 involves minimal breaking changes. This guide provides step-by-step instructions for updating your project to Capacitor 5, as well as a list of breaking changes for official plugins.
注意: Capacitor 5には、Node 12はエンドオブライフに達し、Node 14は2023年4月30日にエンドオブライフに達するため、NodeJS 16以上が必要です。最新のLTSバージョンのNodeJSを使用することをお勧めします。
-
__CAPGO_KEEP_0__の
latestversion of the Capacitor CLI in your project:npm i -D @capacitor/cli@latest -
以下のコマンドを実行して、CLI がマイグレーションを処理するようにします。
npx cap migrateマイグレーションステップが実行できない場合は、ターミナル出力に追加情報が表示されます。マニュアルマイグレーションステップは以下のとおりです。
-
Code 拡張機能がインストールされている場合は、拡張機能の推奨事項のセクションに移動して、Capacitor 5 にプロジェクトをマイグレートするオプションを確認してください。
Capacitor 4 iOS プロジェクトを Capacitor 5 にアップグレードする
-
Xcode をアップグレードする: Capacitor 5 は Xcode 14.1 以降が必要です。
-
.gitignore を更新する: 以下の変更を実行してください。
.gitignoreファイル:- App/Podfile.lock + App/output -
アセットを単一のアプリアイコンで使用する: Xcode 14 は 1024x1024 の単一のアプリアイコンをサポートしています。不要なサイズをすべて削除して、AppIcon.appiconset を整理してください。
Capacitor 4 Android プロジェクトを Capacitor 5 にアップグレードする
-
Android Studio をアップグレード: Capacitor 5 は、Gradle 8 の使用により、Java JDK 17 が必要です。Java 17 は Android Studio Flamingo に含まれているため、追加のダウンロードは必要ありません。
-
AGP アップグレード アシスタントを実行: Android Studio は、Gradle とパッケージの移動に関するいくつかの更新を手助けできます。始めるには、
Tools -> AGP Upgrade Assistant. -
Android Project の変数を更新: 以下の新しい最小値に更新する必要があります。
variables.gradleGoogle Services を更新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' -
Gradle プラグインを 8.0.0 に更新:
# build.gradle dependencies { - classpath 'com.google.gms:google-services:4.3.13' + classpath 'com.google.gms:google-services:4.3.15' } -
Gradle ラッパーを 8.0.2 に更新:
# build.gradle dependencies { - classpath 'com.android.tools.build:gradle:7.2.1' + classpath 'com.android.tools.build:gradle:8.0.0' } -
Jetifier を無効化:
# 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 -
パッケージを移動:
# gradle.properties android.useAndroidX=true - android.enableJetifier=true -
Android Studio をアップグレード
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 -
Android スキームの更新: Capacitor 6 の場合、
httpsは、既存のアプリケーションにシステムの Autofill 機能を使用できるようにするために、androidSchemefor existing apps to better enable Capacitor applications to use the system Autofill feature. To avoid data loss as a result of this change, set the scheme tohttpKotlin のバージョンを更新する{ server: { androidScheme: "http" } } -
: プロジェクトが Kotlin を使用している場合、変数を
kotlin_versionに更新する必要があります。'1.8.20'.
プラグインの機能変更
以下のプラグインの機能が変更または削除されました。code を更新してください。
- アクション シート
- ブラウザー
- カメラ
- デバイス
- 位置情報
- Google Maps
- ローカル通知
- プッシュ通知
- ステータスバー
アクションシート
- を更新して
androidxMaterialVersion__CAPGO_KEEP_0__を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変数に1.3.6.
デバイス
- 変更
DeviceId.uuidにDeviceId.identifier. - iOS 16 以降の場合、
DeviceInfo.nameデフォルトでは、適切なエンタイトルメントを追加しない限り、一般的なデバイス名が返されます。 エンタイトルメント.
位置情報
- を更新してください。
playServicesLocationVersionに21.0.1.
Google Maps
- を更新する変数:
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.
ローカル通知
- SDK 33 に対してローカル通知をスケジュールするために必要な新しい実行時許可チェックがAndroid 13で必要になります。SDK 33にターゲットを設定して、
checkPermissions()とrequestPermissions()したがって。
プッシュ通知
- SDK 33 に対してプッシュ通知を受信するために必要な新しい実行時許可チェックがAndroid 13で必要になります。SDK 33にターゲットを設定して、
checkPermissions()とrequestPermissions()したがって。 - __CAPGO_KEEP_0__ を
firebaseMessagingVersionに更新してください23.1.2.
ステータス バー
- iOSでは、デフォルトのステータス バー アニメーションが変更されました。
FADE.
これらの手順に従って、codeを更新すると、Capacitor 4からCapacitor 5にプロジェクトを正常にアップグレードできると思います。Capacitor 5のすべての機能とプラグインが期待どおりに動作することを確認するために、必ずアプリケーションを徹底的にテストしてください。