メインコンテンツにジャンプ
Capacitor

Capacitor 4からCapacitor 5へのアップデート: ステップバイステップガイド

Capacitor 4からCapacitor 5へのアップデートのステップバイステップガイドを学びましょう。最小限の破壊的な変更を含め、公式のプラグインと必要なツールの更新について説明します。

マーティン・ドナディュー

マーティン・ドナディュー

コンテンツマーケター

Capacitor 4からCapacitor 5へのアップデート: ステップバイステップガイド

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を使用することをお勧めします。

  1. __CAPGO_KEEP_0__の latest version of the Capacitor CLI in your project:

    npm i -D @capacitor/cli@latest
  2. 以下のコマンドを実行して、CLI がマイグレーションを処理するようにします。

    npx cap migrate

    マイグレーションステップが実行できない場合は、ターミナル出力に追加情報が表示されます。マニュアルマイグレーションステップは以下のとおりです。

  3. Code 拡張機能がインストールされている場合は、拡張機能の推奨事項のセクションに移動して、Capacitor 5 にプロジェクトをマイグレートするオプションを確認してください。

Capacitor 4 iOS プロジェクトを Capacitor 5 にアップグレードする

  1. Xcode をアップグレードする: Capacitor 5 は Xcode 14.1 以降が必要です。

  2. .gitignore を更新する: 以下の変更を実行してください。 .gitignore ファイル:

    - App/Podfile.lock
    + App/output
  3. アセットを単一のアプリアイコンで使用する: Xcode 14 は 1024x1024 の単一のアプリアイコンをサポートしています。不要なサイズをすべて削除して、AppIcon.appiconset を整理してください。

Capacitor 4 Android プロジェクトを Capacitor 5 にアップグレードする

  1. Android Studio をアップグレード: Capacitor 5 は、Gradle 8 の使用により、Java JDK 17 が必要です。Java 17 は Android Studio Flamingo に含まれているため、追加のダウンロードは必要ありません。

  2. AGP アップグレード アシスタントを実行: Android Studio は、Gradle とパッケージの移動に関するいくつかの更新を手助けできます。始めるには、 Tools -> AGP Upgrade Assistant.

  3. Android Project の変数を更新: 以下の新しい最小値に更新する必要があります。 variables.gradle Google 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'
  4. 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'
    }
  5. 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'
    }
  6. 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
  7. パッケージを移動:

    # gradle.properties
    android.useAndroidX=true
    - android.enableJetifier=true
  8. 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
  9. Android スキームの更新: Capacitor 6 の場合、 https は、既存のアプリケーションにシステムの Autofill 機能を使用できるようにするために、 androidScheme for 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 to http Kotlin のバージョンを更新する

    {
      server: {
        androidScheme: "http"
      }
    }
  10. : プロジェクトが 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.uuidDeviceId.identifier.
  • iOS 16 以降の場合、 DeviceInfo.name デフォルトでは、適切なエンタイトルメントを追加しない限り、一般的なデバイス名が返されます。 エンタイトルメント.

位置情報

  • を更新してください。 playServicesLocationVersion21.0.1.

Google Maps

  • を更新する変数:
    • googleMapsPlayServicesVersion18.1.0.
    • googleMapsUtilsVersion3.4.0.
    • googleMapsKtxVersion3.4.0.
    • googleMapsUtilsKtxVersion3.4.0.
    • kotlinxCoroutinesVersion1.6.4.
    • androidxCoreKTXVersion1.10.0.
    • kotlin_version1.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のすべての機能とプラグインが期待どおりに動作することを確認するために、必ずアプリケーションを徹底的にテストしてください。

ライブ更新用 Capacitor アプリ

ウェブ層のバグが生じた場合、Capgo を通じて修正を配信するのではなく、数日間待ってアプリストアの承認を待つのではなく、ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路で残る。

はじめに

最新のブログ記事

Capgoは、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を提供します。