iOSとAndroid向けのアプリリリースを、もっと速く、エラーなく行いたいですか? CI/CDパイプラインによる Capacitor アプリのビルド、テスト、デプロイを自動化すると、リリース時間を最大70%短縮し、エラーを60%削減できます。本ガイドでは、環境構築から Live Updates の自動化まで、知っておくべきことすべてを解説します。 Capgo.
要点:
- CapacitorアプリにCI/CDが必要な理由 Capacitor アプリ: ビルド時間を78%短縮し、ストアの却下率を60%削減します。
- 必須ツール: iOSプロファイリング, デバッグ, CocoaPods、など。
- パイプラインの設定: 次のようなタスクを自動化します:
npx cap sync依存関係のキャッシュ、およびプラットフォーム固有のビルドなど。 - Capgo による Live Update: フェーズドロールアウトやロールバック機能により、リリース後のアップデートを可能にします。
クイックセットアップ手順:
- 環境の準備: iOS および Android 用の必要なツールをインストールします。
- プロジェクトの設定: アップデート
capacitor.config.tsおよび環境変数の安全な管理。 - ビルドパイプライン: 両プラットフォームの依存関係のインストール、ビルド、テストを自動化します。
- パフォーマンスの最適化: キャッシング、並列ビルド、条件付きワークフローを活用します。
- Live Updates を追加: Capgo を統合し、段階的なロールアウトによる安全な OTA アップデートを実現します。
CI/CD を導入することで、Capacitor アプリはエラーや手動作業を最小限に抑えつつ、より迅速でスムーズなリリースが可能になります。ワークフローを最適化する準備はできましたか?さっそく始めましょう!
既存の CI/CD パイプラインにモバイル機能を統合する
CI/CD 環境の準備
CI/CD の基本を理解したら、次は環境のセットアップです。これが信頼性の高い自動化の基盤となります。
ツールとソフトウェアのセットアップ
以下の主要ツールがインストールされていることを確認してください:
iOS 開発用:
- Xcode 14以降
- Xcode Command Line Tools
- CocoaPods 依存関係の管理用
Android開発用:
- デバッグ
- Android SDK 33以上
- Java Development Kit (JDK)
Xcode Command Line Toolsのインストール確認には、以下を使用します:
xcode-select -p
作成中 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 keystore へのパス
Android ビルドの場合、CI プロセス中に local.properties ファイルを動的に生成します:
echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties
iOSのビルドを行う際は、CIプラットフォームがmacOSエージェントをサポートしていることを確認してください。
環境の準備ができているか確認するには:
node --version | grep "v16" && xcodebuild -version | grep "Xcode 14" || exit 1
以前の統計でも示されているとおり、キーと認証情報を適切に管理することで、App Storeでリジェクトされる可能性を大幅に下げられます。 [1].
CI/CDパイプラインの作成
Once your environment is ready, the next step is setting up a CI/CD pipeline for your Capacitor アプリが。このパイプラインは、Webアセットとネイティブプラットフォームのビルドの両方を効率的に管理する必要があります。
依存関係のインストールと更新
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と | .ipa | App Store Connect |
| Androidでは | .aab | Google Play Console |
並列ビルドを正しく設定することで、パイプラインの実行時間を大幅に短縮できます。
ビルドの検証とパッケージ化が完了したら、Capgo(次セクションで解説)によるLive Updateの準備は万端です。
sbb-itb-f9944d2
プロジェクトへの Capgo Live Updates用

ワークフローに Capgo を組み込むことで、リリース後のアップデートが可能になり、CI/CDプロセスが強化されます。設定手順は以下の通りです。
Capgo パイプラインの設定
まず、以下をインストールします: 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ライフサイクルに組み込み、 アップデート管理 自動ビルドおよびデプロイプロセスを拡張できます。
次に、ビルドステップの後に upload コマンドを追加します:
- 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 機能概要
| 機能 | 説明 |
|---|---|
| エンドツーエンド暗号化 | デプロイ時のエラーを大幅に削減します。 |
| チャンネルベースのデプロイ | 特定の環境に合わせてアップデートを最適化します。 |
| 段階的なロールアウト | アップデートを段階的に配信することを保証します。 |
OTAアップデート ガイドライン
デプロイ後に以下の主要メトリクスを追跡することで、テストプロセスを強化できます:
フェーズド・デプロイ戦略
段階的なロールアウトを使用して、アップデートの配信を制御します:
- 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つの主要領域に注力すると、パイプラインを目に見えて改善できます:
ビルド速度の最適化
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 |
| プロダクション | セキュアなVault |
以下のスクリプトを使用すると、環境を動的に設定できます:
- 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
Capgo はCI/CDパイプラインとシームレスに連携し、アプリストアのポリシーを遵守しながら即時のアップデートを提供します。アップデートは、パイプラインに組み込まれた自動テストゲートを通過した後にのみデプロイされます。
自動ビルドと段階的なロールアウト(phased rollouts)を組み合わせることで、チームは以下のような素晴らしい成果を実現できます: 7日間以内にユーザーカバー率80% そして、1時間以内でのロールバック機能。
一般的な戦略として、並行したデプロイ・トラックの実行があります。自動ビルドは内部テストに使用し、段階的なロールアウトは特定のユーザーセグメントを対象にします。これにより、厳格な自動テストゲートに裏打ちされた、迅速かつ安全なアップデートが保証されます。 [1].
よくある質問
Capacitor アプリの作成方法
Capacitor アプリのビルドは、以下の簡単なステップで行えます:
-
環境のセットアップ:システムに Node.js と npm をインストールします。次に、Ionic CLI を使用して、Capacitor をサポートする新しいプロジェクトを開始します:
ionic start myApp tabs --capacitor -
プラットフォームの追加:iOS や Android など、ターゲットとするプラットフォームを追加します:
npx cap add ios npx cap add android -
Web code の同期:以下のコマンドを実行して、Web code をネイティブプラットフォームと同期させます:
npx cap sync
同期ステップは、アプリの各プラットフォーム間での一貫性を保ち、CI/CD パイプラインでスムーズに動作させるために非常に重要です。環境構築の詳細については、Tools セクションを確認してください。
Capacitor アプリ向け CI/CD のセットアップへ戻る
使用している場合 Capacitor アプリの CI/CD セットアップ CI/CD自動化を計画するには、次と連携してください Capgo での CI/CD 設定 Capgo CI/CDでのプロダクトワークフローについては、 Capgo Native Build Capgo Native Buildsでのプロダクトワークフローについては、 Capgo インテグレーション Capgo インテグレーションでのプロダクトワークフロー向けに、 CI/CD 連携 CI/CD Integrationの実装詳細については、 GitHub Actions 連携 GitHub Actions Integrationの実装詳細については。