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

Capacitor アプリのCI/CD設定

__CAPGO_KEEP_0__ アプリのiOSとAndroidのリリースをCI/CDパイプラインでスムーズにする方法を学び、効率を高め、エラーを減らす。

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

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

コンテンツマーケター

Capacitor アプリのCI/CD設定

iOSとAndroidのエラーなしの高速リリースを求めますか? CI/CDパイプラインは Capacitor アプリを自動でビルド、テスト、デプロイし、リリース時間を70%以上短縮し、エラーを60%削減します。このガイドでは、環境の設定からライブアップデートの自動化まで、すべての必要な情報が含まれます。 Capgo.

主なポイント:

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

クイックセットアップステップ:

  1. 環境を準備する: iOSとAndroidの両方のプラットフォーム向けに必要なツールをインストールする。
  2. プロジェクトを設定する: セキュアに環境変数を更新および管理する。 capacitor.config.ts ビルドパイプライン
  3. : 両方のプラットフォーム向けに依存関係のインストール、ビルド、テストを自動化する。パフォーマンスの最適化
  4. Optimize performance: キャッシュを使用し、並列ビルド、条件付きワークフローを実行します。
  5. Add live updates: セキュアで、OTA更新のフェーズドロールアウトを実行するために、Capgo を統合してください。

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

既存のCI/CD Pipelinesにモバイル機能を統合する

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

プロジェクトの Capacitor プロジェクト

Capacitor ドキュメントサイト

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

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

このファイルは、プロジェクトがCI/CD要件と一致するようにします。

環境設定の設定

環境変数を安全に管理することは、CI/CD パイプラインと環境設定をリンクする上で重要な要素です。

定義するキーアイテム:

  • BUILD_ENV: デプロイメントステージを指定します (例えば、 production)
  • IOS_SIGNING_IDENTITY:あなたの code 署名証明書
  • ANDROID_KEYSTORE_PATH: Android キーストアのパス

Android ビルドの場合、CI プロセス中に動的に生成する必要があります。 local.properties : iOS ビルドの場合、CI プラットフォームはmacOS エージェントをサポートしていることを確認してください。

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

環境変数の管理

To check if your environment is ready:

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

アプリのストアへの再提出を回避するには、キーとクレデンシャルを適切に管理することが重要です。以前の統計では、管理が不十分な場合の再提出率が高かったことが示されています。 [1].

CI/CD Pipelinesの作成

環境が整ったら、CI/CD Pipelinesを設定する必要があります。__CAPGO_KEEP_0__アプリのビルドとデプロイを効率的に管理するには、Webアセットとネイティブプラットフォームのビルドを両方とも管理する必要があります。 Capacitor appCI/CD環境では、依存関係の管理には厳格なバージョン管理が必要です。最初は、クリーンなインストールプロセスから始めましょう。

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

Azure DevOps

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

ユーザーは、この設定でビルド時間が40-60%短縮されることを確認しました。 iOSとAndroidのビルド設定 iOSとAndroidのビルド設定

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

__CAPGO_KEEP_0__

両プラットフォームのビルド設定方法

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

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

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

sbb-itb-f9944d2

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

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

Integrating Capgo into your workflow enhances your CI/CD process by enabling post-release updates. Here’s how to set it up:

Capgo Pipeline Configuration

最初に、パイプライン環境に 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

For セキュアな更新のために、

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

Capgo Features Overview

__CAPGO_KEEP_0__ 機能の概要概要
端末間の暗号化展開エラーの発生率が著しく低下します。
チャネルベースの展開環境ごとにアップデートをカスタマイズします。
フェーズドロールアウトアップデートが段階的に配布されるようにします。

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

展開後、次の重要な指標を追跡してテストプロセスを強化します。

フェーズドプロセス展開戦略

ステージドロールアウトを使用して、アップデートの配布を制御します。

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

アップデート監視

__CAPGO_KEEP_0__の指標を監視してください:

  • __CAPGO_KEEP_1__率__CAPGO_KEEP_2__:24時間以内に40-60%を目指してください。
  • __CAPGO_KEEP_3____CAPGO_KEEP_4__:99.5%以上を維持してください。
  • __CAPGO_KEEP_5____CAPGO_KEEP_6__:500ms未満を確認してください。

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

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

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

3つの重要な領域に焦点を当てると、パイプラインのパフォーマンスが著しく向上する可能性があります。

ビルド速度の最適化

ウェブのみの変更の場合、__CAPGO_KEEP_7__を使用してください。 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パイプラインを使用すると、ワークフローの効率が大幅に向上します。業界データによると、チームは 同時にiOSとAndroidのビルドを実行することで 50-70%のリリースサイクルが短縮されることがあります [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

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 パイプラインで smooth な動作を保証するために、各プラットフォーム間で一貫性を保つために不可欠です。環境設定の詳細については、Tools セクションを参照してください。

CI/CD の設定から Capacitor アプリを継続して進めます

CI/CD の自動化を計画している場合、__CAPGO_KEEP_0__ CI/CD を使用しています。 CI/CD の自動化を計画している場合、Capacitor CI/CD を使用しています。 CI/CD の自動化を計画している場合、__CAPGO_KEEP_0__ CI/CD を使用しています。 CI/CD の自動化を計画している場合、Capgo CI/CD を使用しています。 製品ワークフローにおけるCapgo CI/CDのために Capgo ネイティブビルド 製品ワークフローにおけるCapgo ネイティブビルドのために Capgo インテグレーション 製品ワークフローにおけるCapgo インテグレーションのために CI/CD インテグレーション CI/CD インテグレーションの実装詳細については GitHub アクションズ インテグレーション for the implementation detail in GitHub Actions Integration.

リアルタイム更新機能付きのCapacitorアプリ

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

はじめに始めましょう

最新のブログ記事

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