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

Capacitor と CLI を使用したビルドスクリプトのカスタマイズ方法

Capacitor と CLI を使用して、効率的なデプロイと各プラットフォーム向けのアプリケーション更新を実現する方法を学びましょう。

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

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

コンテンツマーケター

 Capacitor と CLI を使用したビルドスクリプトのカスタマイズ方法

Capacitor CLI を使用すると、iOS、Android、Webプラットフォーム向けのアプリケーションのビルドプロセスをカスタマイズできます。ビルドスクリプトを調整することで、次のようなことが実現できます。

  • アップデートを高速化: アプリストアの遅延なしで変更を即時反映
  • デプロイを制御: 更新を戻すか、特定のユーザーグループにターゲット
  • アプリを保護: 更新に暗号化を使用
  • ビルドを最適化: プラットフォーム固有のニーズに設定を調整

主な機能のクイックオーバー

  • 構成ファイル: capacitor.config.jsonpackage.json ビルド設定の管理。
  • カスタム スクリプト: ビルド前とビルド後のタスクを自動化するためにプレビルドとポストビルドタスクを追加します。
  • ビルド ハック: code をビルドプロセスの特定のステージで実行します。
  • 環境変数: 環境に応じたビルドを簡素化するために .env ファイル

Capgo, デプロイツールとして機能する 自動更新, バージョン追跡、グローバルパフォーマンス最適化など、プロセスを強化します。続きを読むことで、ビルドスクリプトを最大限に効率化するために設定とカスタマイズ方法を学びましょう。

Introducing Capacitor 設定

Capacitor Framework ドキュメント ウェブサイト

Capacitorのデフォルトビルドプロセス

Capacitorのデフォルトビルドプロセスを理解することは、カスタマイズを効果的に行うために不可欠です。以下では、Capacitor CLIのビルドプロセスとその主な設定ファイルについて説明します。

標準ビルド手順

Capacitorは、ステップごとにウェブアプリをプラットフォーム固有のビルドに変換します。ここでは、デフォルトビルドプロセスの詳細を説明します。

フェーズ説明出力
Web ビルド__CAPGO_KEEP_0__を使用してフレームワークツールでWeb資産をコンパイルします。最適化されたWebバンドル
アセットのコピー__CAPGO_KEEP_0__を使用してWeb資産をネイティブプラットフォームフォルダに移動します。プラットフォーム固有のアセットディレクトリ
ネイティブビルドプラットフォーム固有のビルドコマンドを実行します。展開可能なバイナリ
検証ビルドの整合性と依存関係を確認します。ビルドの状態と警告

メイン設定ファイル

Capacitorがビルドを管理する方法を形作る2つの重要な設定ファイルは

capacitor.config.json
Capacitorプロジェクトの基本設定ファイルです。ビルドの重要なパラメータを設定します。

{
  "appId": "com.example.app",
  "appName": "MyApp",
  "webDir": "dist",
  "bundledWebRuntime": false,
  "plugins": {
    "SplashScreen": {
      "launchShowDuration": 3000
    }
  }
}
  • appId: アプリの固有識別子です。
  • appName: アプリの名前です。
  • webDir: Capacitorがウェブアセットを探す場所を指定します。(例えば dist).
  • plugins: スプラッシュスクリーンオプションなどのプラグイン固有の設定を構成できます。

package.json
このファイルにはビルドスクリプトや依存関係が含まれ、ビルドプロセスに影響を与えます:

{
  "scripts": {
    "build": "npm run build:web && cap sync",
    "build:web": "vite build",
    "cap:build": "cap build"
  }
}
  • ビルド webDir 設定 capacitor.config.json tells Capacitor どこにコンパイルされたウェブアセットを配置するかを指定します。
  • を変更した後、 capacitor.config.jsonを実行する必要があります。 cap sync を実行して、ネイティブプロジェクトを最新の状態に保つ必要があります。

次に、ビルド設定をカスタマイズする方法について詳しく説明します。

ビルドスクリプトの変更

Capacitorのデフォルトのビルドプロセスを調整して、プロジェクトのニーズに合わせて設定できます。

設定ファイルの変更

ビルドプロセスを調整するには、 capacitor.config.json ファイルを編集します。以下に例の設定があります。

{
  "appId": "com.example.app",
  "webDir": "www",
  "server": {
    "hostname": "localhost",
    "androidScheme": "https",
    "iosScheme": "https",
    "allowNavigation": ["*.example.com"]
  },
  "android": {
    "buildOptions": {
      "keystorePath": "release.keystore",
      "keystorePassword": "mypassword",
      "keystoreAlias": "release",
      "keystoreAliasPassword": "mypassword"
    }
  },
  "ios": {
    "scheme": "App",
    "automaticProvisioning": true
  }
}

ここでは、変更できる重要な設定を紹介します。

  • webDir:コンパイルされたウェブアセットの場所を指定します。
  • server: 開発サーバを構成する、ホスト名とナビゲーション許可を含む。
  • android/ios: プラットフォーム固有のビルド設定を許可する、Androidのキーストア詳細やiOSのプロビジョニングオプションなど。

Creating NPM Scripts

ワークフローを簡素化するために、カスタム NPM スクリプトを追加してください。ファイルに追加してください。 package.json 例えば、以下のようにします。

{
  "scripts": {
    "prebuild": "node ./scripts/prepare-env.js",
    "build": "npm run build:web && cap sync",
    "build:web": "vite build",
    "build:ios": "cap build ios --release",
    "build:android": "cap build android --release",
    "postbuild": "node ./scripts/notify-completion.js"
  }
}
  • prebuild :環境設定やビルド完了時に通知を送信するようなタスクに使用します。 postbuild:AndroidアプリやiOSアプリをビルドするためのプラットフォーム固有のコマンドです。
  • build:platformビルドを自動化するには、ビルドハックを追加してください。

Build Hooks Setup

ビルドハックを使用すると、ビルドプロセス中の特定のポイントでカスタム __CAPGO_KEEP_0__ を実行できます。

For more advanced control, use build hooks to execute custom code at specific points during the build process. Here’s an example setup in capacitor.config.ts:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.app',
  plugins: {
    CapacitorHooks: {
      beforeBuild: async () => {
        console.log('Running pre-build tasks...');
        // Add your pre-build tasks here
      },
      afterBuild: async () => {
        console.log('Running post-build tasks...');
        // Add your post-build tasks here
      }
    }
  }
};

export default config;

ビルドハックの設定例は、

  • ビルドが開始される前に要件を検証する
  • __CAPGO_KEEP_0__を変換する
  • 重要なポイントで通知をトリガーする
  • バージョン番号を自動的に更新する
  • 自動テストをシームレスに実行する

このアプローチは、ビルドライフサイクルの全体に大きな柔軟性と制御を提供します。

高度なビルドカスタマイズ

大規模なプロジェクトで作業している場合、ビルドプロセスを微調整すると大きな違いを生み出すことができます。環境固有のビルドとプラットフォームカスタマイズを効果的に管理する方法についてはこちらをご覧ください。

環境変数

環境変数を設定するには、各環境用に別々のファイルを作成します。 .env 次に、ビルドスクリプトを環境に応じて適切なファイルを読み込ませるように設定します。

  • .env.development
  • .env.staging
  • .env.production

環境変数ファイル

import { defineConfig } from '@capacitor/cli';

export default defineConfig({
  ios: {
    buildConfig: {
      environment: process.env.BUILD_ENV || 'development',
      configurations: {
        development: {
          signing: {
            debug: true,
            automaticProvisioning: true
          }
        },
        production: {
          signing: {
            release: true,
            provisioningProfile: 'dist/profile.mobileprovision'
          }
        }
      }
    }
  }
});

これらの設定をさらに調整して、プラットフォーム固有の要件に合わせることができます。

プラットフォーム固有のビルド

AndroidとiOS用のカスタマイズビルドを行うには、以下の構造を使用してください。

const platformConfig = {
  android: {
    buildType: process.env.BUILD_TYPE || 'debug',
    keystoreConfig: {
      path: process.env.KEYSTORE_PATH,
      password: process.env.KEYSTORE_PASSWORD,
      alias: process.env.KEYSTORE_ALIAS
    }
  },
  ios: {
    scheme: process.env.APP_SCHEME || 'App',
    xcodePreferences: {
      automaticSigning: false,
      developmentTeam: process.env.DEVELOPMENT_TEAM
    }
  }
};

これらの設定により、各プラットフォーム用にビルドをカスタマイズし、スムーズなデプロイを実現できます。

機能AndroidiOS
デバッグシンボルProGuard マッピングファイルdSYMファイル
ビルドバリアントdebug, release, stagingdebug, release
Code Signingキーストア管理プロビジョニング プロファイル
アセット管理res/drawable 最適化アセット カタログ

ビルドを最適化するための追加のヒントとしては、

  • パッチアップデートを使用して、デプロイメント時間を節約する
  • エラー追跡を設定して、問題を迅速に特定する
  • ベータテスト用のバージョンを管理するためのチャンネルシステムを作成する
  • 暗号化されたエンドツーエンドの配信を有効にする

Capgoと組み合わせて分析と安全な更新を実行するツールを使用すると、デプロイプロセスに対するコントロールが増えます。 [1].

ビルドスクリプトの問題と解決策

カスタムビルド構成と一緒に作業する場合、エラーを迅速に解決することは、ビルドプロセスを正常に実行するために重要です。

共通のエラーを修正する

多くのビルドスクリプトの問題は、環境設定または依存関係の問題から生じます。ここでは、共通の問題を解決する方法について説明します。

環境変数が欠落している

次のようなエラーが発生した場合:

error: Cannot find environment configuration for BUILD_ENV

環境変数が欠落している場合は、プロジェクトのルートディレクトリにファイルを作成して修正できます。例えば: .env.local プラットフォーム固有のビルド失敗

BUILD_ENV=development
CAPACITOR_PLATFORM=ios
BUILD_TYPE=debug

Androidの署名エラーの場合、次のコマンドを使用してください:

CloudflareのSSL証明書を使用する

npx cap build android --keystorePassword=$KEYSTORE_PASSWORD --keystoreAlias=$KEYSTORE_ALIAS

iOS 設定プロファイルの問題の場合、試してみてください:

npx cap build ios --configuration=release --type=development
エラーの種類一般的な原因解決策
署名設定キーストアの詳細が欠落している設定 KEYSTORE_PATH と資格情報
ビルド環境未定義の変数プラットフォーム固有の .env ファイルを作成する
依存関係バージョン不一致更新 package.json と同期

__CAPGO_KEEP_0__の修正を適用した後、変更が堅牢であることを確認するには、徹底的なビルドテストを実行してください。

テスト ビルド スクリプト

__CAPGO_KEEP_0__のエラーが解決されたら、次の手順でビルドスクリプトを検証してください。

  • 自動検証: ビルドプロセスが予想どおりに動作することを確認するために、重要なコマンドを実行してください。
npm run build
npx cap sync
npx cap copy
  • 環境検証: ビルドを開始する前に、環境変数が欠けていないことを確認してください。
const requiredVars = ['BUILD_ENV', 'KEYSTORE_PATH'];
requiredVars.forEach(varName => {
  if (!process.env[varName]) {
    throw new Error(`Missing required env var: ${varName}`);
  }
});
  • ビルドスクリプトのデバッグ: ビルド中に潜在的な問題をキャッチするための詳細なスクリプトを追加します。
{
  "scripts": {
    "build:debug": "NODE_ENV=development npx cap build --verbose",
    "build:release": "NODE_ENV=production npx cap build --verbose"
  }
}

テストの追加ヒント:

  • 使用 Docker コンテナを使用してビルドを分離します。
  • プロセスを開始する前に構成ファイルを検証します。
  • 複数の Node.js バージョンでテストします。
  • プラットフォーム固有の要件が満たされていることを確認します。
  • ビルドパフォーマンスを確認して可能な限り改善するための改善点を探します。

Capgo 機能を構築する

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

Capgoはビルドスクリプトを次のレベルに引き上げ、自動展開を実現し、効率を高め、プロセスを簡素化します。

迅速なアプリケーション更新

Capgoの更新パフォーマンスは驚くほど優秀です:

  • 95%のアクティブユーザー 24時間以内に更新を受け取る
  • 82%の成功率 世界中の更新配信
  • 平均APIの応答時間 世界中で434ms.

プラットフォームは部分更新を使用し、変更のみをダウンロードするため、帯域幅使用量を削減し、更新プロセスを高速化します。さらに、ビルド全体プロセスは完全に自動化され、時間と労力を節約します。

ビルド自動化

Capgoは主なCI/CDプラットフォームと組み合わせて、以下の統合機能を提供します。

CI/CDプラットフォーム統合機能利点
GitHubアクション自動ビルド、デプロイトリガー継続的なデプロイ
GitLab CIパイプライン自動化、バージョン管理ストリーミングされたワークフロー
Jenkinsカスタムワークフロー、ビルドのハック企業向けに拡張可能

自動ビルドの設定は通常、 1 か月あたり $300、従来のソリューションと比べてはるかに予算に優しいです。従来のソリューションは年間 $6,000 まで高くなります。 セキュリティスタンダード.

__CAPGO_KEEP_0__ は、Apple と Google のガイドラインに準拠したセキュアなフレームワークを提供します。

Capgo prioritizes security with a robust framework that includes:

  • セキュアなキー管理。
  • バージョン管理機能
  • __CAPGO_KEEP_0__

__CAPGO_KEEP_0__

  • 即時ロールバック機能.
  • デプロイメントバージョン追跡.
  • ステージングリリース用のアップデートチャンネル管理.

このセキュリティフレームワークは、数百のエンタープライズアプリケーションを横断して徹底的にテストされています。追加のセキュリティが必要なチームには、カスタマイズ可能な構成で自社ホストされたソリューションもCapgoが提供しています.

Capgoのチャネルシステムは、更新の配布を柔軟に管理します。開発者は、特定のユーザーグループに異なるバージョンをターゲットに設定し、ベータテストや段階的なロールアウトに適したものです.

概要

ビルドステップオーバービュー

カスタムビルドスクリプトは、ビルドホック、環境変数、プラットフォーム固有のコマンドを利用して、自動化されたおよび一貫したデプロイメントを実現します。これらのプロセスは、Capgoによって可能なデプロイメント改善の基盤を形成します.

Capgoの利点

Capgoは、750のプロダクションアプリケーションを通じて成功した23.5百万回の更新を実現したデプロイメントを簡素化します。 [1]部分的な更新システムは、帯域幅使用量とデプロイメント時間を両方とも削減します。

このプラットフォームは、迅速な更新、グローバルパフォーマンス最適化、端末間の暗号化、柔軟なチャネルベースの配布システムを提供します。この設定は、ターゲットアップデート、ベータテスト、アプリストアガイドラインへの準拠を維持しながら、強力なセキュリティフレームワークをサポートします。

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

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

今すぐ始めましょう

ブログの最新記事

Capgo を使用すると、プロフェッショナルなモバイル アプリを作成するために必要な最良の洞察を得ることができます。