はじめに
-
パッケージをインストール
Terminal window npm i @capgo/capacitor-envTerminal window pnpm add @capgo/capacitor-envTerminal window yarn add @capgo/capacitor-envTerminal window bun add @capgo/capacitor-env -
ネイティブプラットフォームと同期
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
設定値を宣言
Section titled “設定値を宣言”Capacitor設定にキーを追加して、ネイティブビルドに組み込まれるようにします。環境ごとに値を入れ替えるために、複数の設定バリアント(capacitor.config.prod.ts、capacitor.config.dev.tsなど)を作成できます。
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { appId: 'com.example.app', appName: 'Example', webDir: 'dist', plugins: { Env: { API_URL: 'https://api.example.com', PUBLIC_KEY: 'pk_live_123', }, },};
export default config;ネイティブプラットフォームでは、値は生成された設定ファイル(ios/App/App/capacitor.config.jsonとandroid/app/src/main/assets/capacitor.config.json)内に保存されます。テナント固有の値が必要な場合は、フレーバーごとにそれらのファイルを更新してください。
コード内で値を読み取る
Section titled “コード内で値を読み取る”import { Env } from '@capgo/capacitor-env';
const apiUrl = await Env.getKey({ key: 'API_URL' }).then((result) => result.value);
if (!apiUrl) { throw new Error('Missing API_URL configuration');}フォールバックを提供
Section titled “フォールバックを提供”const loadConfig = async () => { const { value: endpoint } = await Env.getKey({ key: 'API_URL' }); return endpoint || 'https://staging.example.com';};- 環境ごとに異なる
capacitor.configファイルを使用し、npx cap run ios --configuration=prodでCLIに正しいファイルを指定します。 - Capgo updaterチャンネルと組み合わせて、新しいバイナリを公開せずにテナント固有の値を配信します。
npx cap syncの前に、CIビルド中に秘密を置換することで、ソース管理から秘密を除外します。