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

Capacitor アプリのCI/CD設定

iOSおよびAndroid向けのCI/CDパイプラインを使用して、アプリのリリースを効率化し、エラーを削減する方法を学びましょう。

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

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

マーケティング担当者

Capacitor アプリのCI/CD設定

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

重要なポイント:

  • CI/CDは Capacitorアプリにとって重要です
  • : ビルド時間を78%短縮し、ストアからの却下を60%削減します。: Xcode, Android Studio, CocoaPods、その他。
  • パイプライン設定:タスクの自動化、依存関係のキャッシュ、プラットフォーム固有のビルドなどを実行します。 npx cap syncリアルタイム更新と__CAPGO_KEEP_0__
  • Live updates with Capgoクイックセットアップステップ:

環境の準備

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

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

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

CI/CD環境の準備

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

ツールとソフトウェアの設定

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

iOS開発用:

  • Xcode 14以上
  • Xcode Command Line Tools
  • CocoaPods 依存関係の管理

Android開発用:

  • Android Studio
  • Android SDK 33以上
  • Java Development Kit (JDK)

Xcode Command Line Toolsのインストールを確認するには、以下のコマンドを実行してください:

xcode-select -p

Creating a Capacitor Project

Capacitor Framework Documentation Website

Your Capacitor project needs to be configured correctly for CI/CD workflows. The capacitor.config.ts ファイルはCI/CD要件に沿ったプロジェクトを確保することを保証しています。

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

環境変数の設定

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

CI/CDパイプラインと環境設定をリンクするために定義する必要があるキー変数:

CI/CDパイプラインと環境設定をリンクするために定義する必要があるキー変数:

  • BUILD_ENV: Specifies the deployment stage (e.g., production)
  • IOS_SIGNING_IDENTITY: code の署名証明書を指定します。
  • ANDROID_KEYSTORE_PATH: Android のキーストアのパス

For Android builds, dynamically generate a local.properties ファイルを CI プロセス中に自動生成します:

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

When working with iOS builds, ensure your CI platform supports macOS agents.

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

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

To check if your environment is ready: [1].

環境が準備できているかどうか確認するには:

Properly managing keys and credentials can significantly lower the chances of app store rejections, as noted in earlier statistics Capacitor appCreating Your CI/CD Pipeline

依存関係のインストールと更新

CI/CD 環境では、依存関係の管理には厳格なバージョン管理が必要です。最初は、クリーンなインストールプロセスから始めましょう:

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

ビルドを高速化するには、依存関係のキャッシュを使用します。たとえば Azure DevOps ユーザーは、この設定でビルド時間が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.ipaApp Store Connect
Android.aabGoogle Play Console

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

Once your builds are validated and packaged, you’re ready to move on to live updates with Capgo (discussed in the next section).

sbb-itb-f9944d2

追加 Capgo ライブ更新用

Capgo ライブ更新ダッシュボードインターフェース

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

Capgo Pipelines設定

最初に、 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

安全な更新」のため、検証設定を次のように設定します:

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

Capgo機能概要

機能説明
端末間暗号化展開エラーの発生率を大幅に削減します。
チャネルベースの展開環境ごとにアップデートをカスタマイズします。
フェーズドロールアウト__CAPGO_KEEP_0__は、徐々にアップデートを配布することを保証します。

__CAPGO_KEEP_0__のアップデートガイドライン

__CAPGO_KEEP_0__を実行した後、次の重要な指標を追跡してテストプロセスを強化することをお勧めします。

__CAPGO_KEEP_0__戦略

アップデートをステージングして、更新がどのように配布されるかを制御することができます。

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

__CAPGO_KEEP_0__

これらの指標を監視してください。

  • 採用率: 最初の24時間以内に40-60%を目指してください。
  • クラッシュフリーのセッション: 99.5%以上を維持してください。
  • __CAPGO_KEEP_0__時間: __CAPGO_KEEP_0__の時間は500ms未満でなければなりません。

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

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

パイプラインのパフォーマンスを向上させる

パイプラインのパフォーマンスを向上させるには、3つの重要な領域に焦点を当てると、パイプラインのパフォーマンスに目に見える改善が見られます。

ビルド速度の最適化

Webのみの変更の場合、 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"
  }
}

これらの慣行は、クラッシュ率やビルド時間などのメトリクスを使用してパイプラインのパフォーマンスを追跡し改善するための堅固な枠組みを提供します。

  • ビルド時間(ステージごと)
  • キャッシュ効率(ヒット/ミス比率)
  • ピークリソース使用量

マルチ環境設定

複数の環境を管理することは、環境固有の設定を使用することで簡素化できます。ここでは、以下の例をご覧ください。

環境設定ファイル
開発.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].

For instance, teams leveraging Azure DevOps pipelines have automated processes such as sequential build steps and Xcode packaging. They also use parameterized environments for both development and production. This approach removes the need for manual Gradle and Xcode CLI operations, ensuring reliable artifact creation every time.

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

これらの改善は、Capgoと組み合わせると、更新管理のフローがよりスムーズになります。

Capgoの更新管理

__CAPGO_KEEP_0__はCI/CDパイプラインと組み合わせて、即時アップデートを提供し、アプリストアのポリシーに準拠したままです。パイプラインに組み込まれた自動テストゲートを通過した後、更新がデプロイされます。自動ビルドとフェーズドロールアウトを組み合わせると、チームは驚くような結果を実現できます: 7日以内に80%のユーザーをカバーする 1時間以内にロールバック機能を実装する

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

FAQs

Capacitorアプリを作成する方法

Capacitorアプリを作成するには、以下の手順を実行します。

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

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

    npx cap add ios
    npx cap add android
  3. ウェブcodeを同期する: ネイティブプラットフォームとウェブcodeを同期するために、以下のコマンドを実行します。

    npx cap sync

プラットフォーム間で一貫性を維持し、CI/CD Pipelines内での平滑な動作を確保するために、同期ステップは重要です。環境設定の詳細については、ツールのセクションを参照してください。

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

__CAPGO_KEEP_0__ を使用している場合 Capacitor アプリのCI/CD設定 CI/CDの自動化を計画するには、__CAPGO_KEEP_0__ CI/CDと接続します。 Capgo CI/CDの製品ワークフロー Capgo ネイティブ ビルドの製品ワークフロー Capgo インテグレーションの製品ワークフロー for the product workflow in Capgo Native Builds, Capgo Integrations Capgo アプリのCI/CD設定から続けてください __CAPGO_KEEP_0__ を使用している場合 CI/CD統合の実装詳細について GitHub Actions統合 for the implementation detail in GitHub Actions Integration.

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

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

スタートする

最新のブログ記事

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