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

Capacitor アプリのCI/CD設定

__CAPGO_KEEP_0__ アプリのiOSおよびAndroid向けリリースをCI/CDパイプラインでスケールアップし、効率を高め、エラーを減らす方法を学びましょう。

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

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

コンテンツマーケター

Capacitor アプリのCI/CD設定

iOSおよびAndroid向けの迅速でエラーのないアプリリリースを求めますか? CI/CD パイプライン Capacitor アプリの自動ビルド、テスト、デプロイを実現し、リリース時間を最大70%短縮し、エラーを60%削減します。このガイドでは、環境の設定からライブ更新の自動化まで、すべてのことがカバーされています。 Capgo.

CI/CDの重要性

  • CI/CDの重要性 Capacitor アプリCI/CDにより、ビルド時間が78%短縮され、ストアからの却下が60%削減されます。
  • 必須ツール: Xcode, Android Studio, CocoaPods, など
  • Pipeline 設定: タスクの自動化、 npx cap sync依存関係のキャッシュ、プラットフォーム固有のビルドなどを行います。
  • Live updates with Capgo: リリース後の更新をフェーズドロールアウトとロールバックの安全保障機能で有効にします。

Quick Setup Steps:

  1. 環境の準備: iOSとAndroidのために必要なツールをインストールします。
  2. プロジェクトの設定: capacitor.config.ts 環境変数の安全な更新と管理
  3. ビルドパイプライン: __CAPGO_KEEP_0__を自動でインストール、ビルド、テストする。
  4. パフォーマンスの最適化: キャッシュ、並列ビルド、条件付きワークフローを使用する。
  5. リアルタイム更新の追加: Capgoを安全かつOTAで更新するために、フェーズドロールアウトを実行する。

CI/CDを使用すると、Capacitorアプリは、エラーと手動介入を最小限に抑えながら、より速く、滑らかなリリースを実現します。ワークフローを最適化する準備ができましたか? では始めましょう!

モバイル機能と既存のCI/CDパイプラインを統合する

CI/CD環境の準備

CI/CDの基本を理解したら、環境を設定することが次のステップです。これは、信頼できる自動化の骨格です。

ツールとソフトウェアのセットアップ

次のキーなツールがインストールされていることを確認してください:

For iOS Development:

  • iOS 開発用:
  • Xcode 14 or newer
  • Xcode 14 以上 Xcode Command Line Tools

Xcode コマンド ライン ツール

  • CocoaPods
  • Android SDK 33 or above
  • for managing dependencies

依存関係を管理するために

xcode-select -p

For Android Development: Android 開発用:、Android Capacitor 33 or above、Java Development Kit (JDK)を使用します。Android Studio 33 以上を使用します。Android Studio 33 以上を使用します。Java Development Kit (JDK)を使用します。To confirm your Xcode Command Line Tools are installed, use:、Xcode Command Line Toolsがインストールされているかどうかを確認するには、以下のコマンドを実行してください。Creating a、Capacitor プロジェクト

Capacitor フレームワーク ドキュメント ウェブサイト

あなたの Capacitor プロジェクトは、CI/CD ワークフローで正しく設定されている必要があります。CI/CD ワークフローでプロジェクトを設定するには、 capacitor.config.ts ファイルはこの設定の中心です:

const config: CapacitorConfig = {
  appId: 'com.example.app',
  webDir: 'build',
  ios: { 
    scheme: 'MyApp'
  }
}

このファイルは、CI/CD 要件に従ってプロジェクトを整合させることを保証します。

環境変数の設定

環境設定とCI/CD パイプラインをリンクするために、安全にクレデンシャルを管理することは、重要な要素です。

定義する必要がある重要な変数:

  • BUILD_ENV: CI/CD ステージを指定します (例えば、 production)
  • IOS_SIGNING_IDENTITY:あなたの code 署名証明書
  • ANDROID_KEYSTORE_PATH: Android キーストアへのパス

Android ビルドの場合、動的に署名証明書を生成する必要があります local.properties ファイルのCIプロセス中:

echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties

iOSビルドの場合、CIプラットフォームがmacOSエージェントをサポートしていることを確認してください。

環境が使用可能であるかどうかを確認するには:

node --version | grep "v16" && xcodebuild -version | grep "Xcode 14" || exit 1

アプリストアの却下の可能性を大幅に低減できるのは、キーやクレデンシャルを適切に管理することです。前述の統計にも記載されています。 [1].

CI/CDパイプラインの作成

環境が使用可能になったら、__CAPGO_KEEP_0__アプリのためのCI/CDパイプラインを設定する次のステップです。このパイプラインは、Webアセットとネイティブプラットフォームビルドを効率的に管理する必要があります。 Capacitor appCI/CD環境では、依存関係の管理には厳格なバージョン管理が必要です。最初は、クリーンなインストールプロセスから始めてください:

ビルドを高速化するには、依存関係キャッシングを使用します。たとえば、

依存関係キャッシングを使用してビルドを高速化するには、

npm install --ignore-scripts
npm install @capacitor/cli

依存関係キャッシングを使用してビルドを高速化するには、 依存関係キャッシングを使用してビルドを高速化するには、 ユーザーはこの設定でビルド時間が40-60%短縮されることを経験しています:

- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | package-lock.json'
    path: |
      node_modules
      android/.gradle
      ios/Pods

iOSおよびAndroidビルド設定

両方のプラットフォームのビルド設定を構成する方法についてはこちら:

iOSビルド設定:

steps:
  - task: InstallAppleCertificate@2
    inputs:
      certSecureFile: 'certificate.p12'
      certPwd: $(P12_PASSWORD)
  - script: |
      xcodebuild -workspace ios/App/App.xcworkspace -scheme App -configuration Release -archivePath ios/App/App.xcarchive archive

Androidビルド設定:

cd android
./gradlew bundleRelease

テストとデプロイのステップ

プラットフォームテストをマトリックス戦略を使用して並列実行する:

test:
  steps:
    - run: npm run test:unit
    - run: npm run test:e2e
    - name: Run Platform Tests
      matrix:
        platform: [ios, android]
      run: npm run test:${{ matrix.platform }}

デプロイの場合、プラットフォーム固有のアーティファクトハンドリングを設定する:

プラットフォーム アーティファクトタイプ 配布チャネル
iOS .ipa App Store Connect
Android .aab Google Play Console

並行ビルドを正しく設定すると、パイプライン実行時間が大幅に短縮されることがあります。

ビルドが検証されパッケージ化されると、ライブアップデートに進む準備が整います。Capgo (次のセクションで説明します)。

sbb-itb-f9944d2

追加 Capgo ライブアップデート用

Capgo ライブアップデート ダッシュボード インターフェース

Capgoをワークフローに統合すると、リリース後の更新を有効にすることでCI/CDプロセスを強化できます。ここでは、設定方法を紹介します。

Capgo Pipelining設定

最初に、 Capgo CLI をパイプライン環境にインストールします。

steps:
  - name: Install Capgo CLI
    run: npm install -g @capgo/cli
  - name: Configure Authentication
    env:
      CAPGO_KEY: ${{ secrets.CAPGO_API_KEY }}

この追加により、CI/CDライフサイクルに更新管理機能を組み込むことで、自動ビルドとデプロイプロセスを拡張します。 次に、ビルドステップ後にアップロードコマンドを含めます。 セキュアな更新のためには、

バリデーション設定を次のように設定します。

- name: Upload Update
  run: |
    capgo upload --api-key $CAPGO_KEY --bundle ./build/app-release.apk
    capgo deploy v${VERSION} --channel production

__CAPGO_KEEP_0__ __CAPGO_KEEP_1____CAPGO_KEEP_0__

{
  "verification": {
    "checksum": "strict",
    "certificatePinning": true,
    "updateTimeout": 500
  }
}

Capgo機能概要

機能 説明
端末間の暗号化 __CAPGO_KEEP_0__の展開エラーは、非常に少なくなりました。
チャネルベースの展開 特定の環境に合わせてアップデートを調整します。
フェーズドロールアウト アップデートは段階的に配布されます。

OTAアップデートガイドライン

__CAPGO_KEEP_0__の展開後、次の重要な指標を追跡してテストプロセスを強化することができます。

フェーズド展開戦略

アップデートの配布を制御するステージドロールアウトを使用してください:

- name: Staged Rollout
  run: |
    capgo deploy v1.2.3 --group "beta-users" --rollout 10%
    capgo deploy v1.2.3 --rollout 50%

アップデート監視

これらのメトリクスを監視してください:

  • 採用率: 最初の24時間以内に40-60%を目指してください。
  • クラッシュフリーのセッション: 99.5%以上を維持してください。
  • 検証時間: 500ms未満を保証してください。

クラッシュ率が許容範囲を超えると、ロールバックを自動化してください:

- name: Rollback Check
  run: |
    if [ $(capgo stats --version v1.2.3 --metric crashes) -gt 2 ]; then
      capgo rollback --channel production
    fi

パイプラインパフォーマンスの向上

パイプラインパフォーマンスを大幅に向上させるには、3つの重要な領域に焦点を当てることができます。

高速化オプティミゼーション

ウェブのみの変更の場合、 npx cap sync を使用すると、フルネイティブの再構築をスキップして時間を節約でき、約40%の再構築時間短縮が可能です。条件付きビルドを実装する方法については、以下をご覧ください。

- name: Build Strategy
  run: |
    [ "$WEB_ONLY" = true ] && npx cap sync || (./gradlew assembleRelease && xcodebuild ...)

このアプローチでは、必要なコンポーネントのみを再構築することで、プロセスを簡素化します。

バージョン管理の自動化

バージョン管理の自動化は、ワークフローを簡素化できます。バージョンとビルド番号を動的に設定するスクリプトを使用してください。

- name: Set Version
  run: |
    VERSION=$(node -p "require('./package.json').version")
    BUILD_NUMBER=$GITHUB_RUN_NUMBER
    echo "APP_VERSION=${VERSION}" >> $GITHUB_ENV
    echo "BUILD_ID=${BUILD_NUMBER}" >> $GITHUB_ENV

さらに、自動化されたシナリオバージョニング設定も可能です。

{
  "scripts": {
    "version": "standard-version",
    "build:prod": "npm version patch && ionic build --prod"
  }
}

これらの慣行は、以下のメトリクスを通じてパイプラインのパフォーマンスを追跡および向上させるための堅固なフレームワークを提供します。

  • 各ステージあたりのビルド時間
  • キャッシュ効率(ヒット/ミス率)
  • ピークリソース使用率

マルチエvironment設定

環境を管理する複数の環境を使用することで、環境固有の設定を簡素化できます。 ここに例を示します。

環境 設定ファイル
開発 .env.dev
ステージング .env.staging
本番 安全な鍵箱

このスクリプトを使用して、環境を動的に設定できます。

- name: Configure Environment
  env:
    API_KEY: ${{ secrets.ENV_SPECIFIC_API_KEY }}
    BUNDLE_ID: ${{ parameters.bundleId }}
  run: |
    echo "ENVIRONMENT=${{ parameters.environment }}" >> $GITHUB_ENV
    echo "API_ENDPOINT=${{ parameters.apiUrl }}" >> $GITHUB_ENV

これらの設定をCapgoのチャネルベースのデプロイと組み合わせると、より正確で環境固有の更新が可能になります。これにより、スムーズなロールアウトと、異なる環境におけるアプリケーションの動作をよりよく制御できます。

概要

CI/CDの開発における役割

Capacitorアプリケーション用のCI/CDパイプラインを使用すると、ワークフローの効率が大幅に向上します。業界データによると、チームは 50-70%のリリースサイクルが速まる iOSとAndroidの同時ビルドにより [3]. 依存関係のインストールやプラットフォームの同期などのタスクを自動化することで、 40-60% [1][2].

たとえば、Azure DevOps Pipelinesを利用するチームは、シーケンシャルビルドステップやXcodeパッケージングなどのプロセスを自動化しています。また、開発と運用環境の両方でパラメータ化された環境を使用しています。このアプローチにより、GradleとXcodeのCLI操作が手動で行われなくなり、毎回のアーティファクトの作成が信頼性が高くなります。

これらの改善は、Capgoと組み合わせると、順調にアップデート管理がスムーズになります。

Capgo for Update Management

CapgoはCI/CD Pipelinesと組み合わせて、即時アップデートを提供し、App Storeポリシーへの準拠を保ちます。アップデートは、パイプラインに組み込まれた自動テストゲートを通過した後のみ、デプロイされます。

自動ビルドとフェーズドロールアウトを組み合わせると、チームは次のような結果を達成します: 7日以内に80%のユーザーがカバーされる 1時間以内にロールバックが可能になる

並行的なデプロイメントトラックを実行することが一般的な戦略です。内部テスト用に自動ビルドが使用され、フェーズドロールアウトはユーザーセグメントをターゲットにします。このアプローチにより、更新は速く安全で、厳密な自動テストゲートによって裏付けられます。 [1].

FAQs

How to create a Capacitor app?

Capacitor appを作成するには、以下の手順を実行します:

  1. 環境の設定: Node.jsとnpmをインストールし、Ionic CLIを使用してCapacitorサポートの新しいプロジェクトを開始します。

    ionic start myApp tabs --capacitor
  2. プラットフォームの追加: iOSやAndroidなどのターゲットとするプラットフォームを追加します。

    npx cap add ios
    npx cap add android
  3. Web codeの同期: Web codeがネイティブプラットフォームと同期されていることを確認するには、以下のコマンドを実行します。

    npx cap sync

同期ステップは、CI/CD PipelinesでSmoothな動作を保証するために、各プラットフォーム間で一貫したアプリを保証するために重要です。環境の設定についての詳細は、Toolsセクションを参照してください。

CapacitorアプリのCI/CD設定から続けてください。

__CAPGO_KEEP_0__アプリを使用している場合 CapacitorアプリのCI/CD設定 CI/CD自動化を計画するには、 Capgo CI/CD Capgo CI/CDの製品ワークフロー Capgoネイティブビルド Capgoネイティブビルドの製品ワークフロー Capgo統合 Capgo統合の製品ワークフロー CI/CD統合 CI/CD統合の実装詳細 GitHubアクション統合 GitHubアクション統合の実装詳細

Capacitorアプリのリアルタイム更新

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

今すぐ始めよう

ブログの最新記事

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