メインコンテンツまでスキップ
バージョン: v7

Capacitor 6からCapacitor 7へのアップデート

このガイドでは、プロジェクトをCapacitor 7の最新バージョンにアップデートする手順と、公式プラグインの変更点を説明します。

Capacitor 設定ファイルの変更点

bundledWebRuntime 設定オプションが削除されました。もし false に設定していた場合は、安全に削除できます。もし true に設定していた場合は、アプリ内で @capacitor/core のコードをバンドルするために bundler を使う必要があります。

cordova.staticPlugins 設定オプションが削除されました。もしstaticである必要のある Cordova プラグインがある場合は、cordova-ios 7+ ではサポートされていないため、framework タグを使う代わりに、use-framework 属性を持つ podspec タグを使うように更新する必要があります。

NodeJS 20+

Node 18は2023年10月18日にアクティブサポートが終了しました。Capacitor 7はNodeJS 20以上を必要とします。(最新のLTSバージョンを推奨します)。

テレメトリーはオプトアウトになりました。

以前Capacitorコマンドを使用したことがある場合、すでにプリファレンスが保存されているので、これは新規ユーザーにのみ影響します。また、CIサーバーのような非インタラクティブな環境ではテレメトリーは実行されません。 npx cap telemetry off で無効にできます。

CLIを使って移行する

最新バージョンのCapacitor CLIをプロジェクトにインストールする:

npm i -D @capacitor/cli@latest

インストールしたら、以下を実行するだけで、CLIがマイグレーションを処理します:

npx cap migrate

移行のステップのいずれかが完了できなかった場合、ターミナルの出力に追加情報が表示されます。手動で移行する手順を以下に示します。

iOS

以下のガイドでは、Capacitor 6 iOSプロジェクトをCapacitor 7にアップグレードする方法を説明します。

Xcodeのアップグレード

Capacitor 7はXcode 16.0以上を必要とします。

iOSデプロイメントターゲットの引き上げ

Xcodeプロジェクトに対して以下の操作を行います:プロジェクトエディタ内でProjectを選択し、Build Settingsタブを開きます。Deploymentセクションの下で、iOS Deployment TargetiOS 14.0に変更します。アプリのTargetsに対しても同じ手順を繰り返します。

次に、ios/App/Podfileを開き、iOSバージョンを14.0に更新します:

platform :ios, '14.0'

Android

以下のガイドでは、Capacitor 6 AndroidプロジェクトをCapacitor 7にアップグレードする方法を説明します。

Android Studioのアップグレード

Capacitor 7はAndroid Studio Ladybug | 2024.2.1以上とJava JDK 21を必要とします。Java 21はAndroid Studio Ladybugに同梱されています。追加のダウンロードは不要です!

更新が完了したら、Android Studioはgradleやビルドファイルへのパッケージ移動に関連するいくつかの更新を支援できます。まず、Tools -> AGP Upgrade Assistantを実行します。

APG Upgrade Assistant

Androidプロジェクト変数の更新

variables.gradle ファイルを、新しい最小値にアップデートしてください。

minSdkVersion = 23
compileSdkVersion = 35
targetSdkVersion = 35
androidxActivityVersion = '1.9.2'
androidxAppCompatVersion = '1.7.0'
androidxCoordinatorLayoutVersion = '1.2.0'
androidxCoreVersion = '1.15.0'
androidxFragmentVersion = '1.8.4'
coreSplashScreenVersion = '1.0.1'
androidxWebkitVersion = '1.12.1'
junitVersion = '4.13.2'
androidxJunitVersion = '1.2.1'
androidxEspressoCoreVersion = '3.6.1'
cordovaAndroidVersion = '10.1.1'

google services pluginをアップデート

# build.gradle

dependencies {
classpath 'com.android.tools.build:gradle:8.2.1'
- classpath 'com.google.gms:google-services:4.4.0'
+ classpath 'com.google.gms:google-services:4.4.2'

gradle plugin を 8.7.2 にアップデート

# build.gradle

dependencies {
- classpath 'com.android.tools.build:gradle:8.2.1'
+ classpath 'com.android.tools.build:gradle:8.7.2'

gradle wrapper を 8.11.1 にアップデート

# gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
- distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

Kotlinバージョンの更新

プロジェクトでKotlinを使用している場合、kotlin_version変数を'1.9.25'に更新します。

configChangesにnavigationを追加

これは、Bluetoothキーボードを使用する際に一部のデバイスでアプリの再起動を防ぐためのオプションの変更です。 AndroidManifest.xmlのアプリactivityconfigChangesnavigationを追加します。

- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"

プラグイン

プラグインがバージョン7.0.0にアップデートされました。

以下のプラグインの機能が変更または削除されました。それに従ってコードを更新してください。

Action Sheet

  • androidxMaterialVersion 変数が 1.12.0 に更新されました。

App

  • 非推奨の型 AppRestoredResult が削除され、 RestoredListenerEvent を使用します。
  • 非推奨の型 AppUrlOpen が削除され、 URLOpenListenerEvent を使用します。

Browser

  • androidxBrowserVersion 変数が 1.8.0 に更新されました。

Camera

  • androidxExifInterfaceVersion 変数が 1.3.7 に更新されました。
  • androidxMaterialVersion 変数が 1.12.0 に更新されました。

Device

  • getInfo()diskFreediskTotalrealDiskFreerealDiskTotal を返さなくなったため、このプラグインの PrivacyInfo.xcprivacy エントリを削除できます。
  • 非推奨の型 DeviceBatteryInfo が削除され、 BatteryInfo を使用します。
  • 非推奨の型 DeviceLanguageCodeResult が削除され、 GetLanguageCodeResult を使用します。

Geolocation

  • playServicesLocationVersion 変数が 21.3.0 に更新されました。

Haptics

  • 非推奨の型 HapticsImpactOptions が削除され、 ImpactOptions を使用します。
  • 非推奨の型 HapticsNotificationOptions が削除され、 NotificationOptions を使用します。
  • 非推奨の型 HapticsNotificationType が削除され、 NotificationType を使用します。
  • 非推奨の型 HapticsImpactStyle が削除され、 ImpactStyle を使用します。

Push Notifications

  • firebaseMessagingVersion 変数が 24.1.0 に更新されました。

Share

  • androidxCoreVersion 変数が 1.15.0 に更新されました。

Splash Screen

  • 非推奨の型 SplashScreenShowOptions が削除され、 ShowOptions を使用します。
  • 非推奨の型 SplashScreenHideOptions が削除され、 HideOptions を使用します。

Status Bar

  • setOverlaysWebView()setBackgroundColor() が iOS でサポートされるようになりました。
  • androidxCoreVersion 変数が 1.15.0 に更新されました。