入门
-
安装软件包
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
将密钥添加到 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 更新程序通道结合使用,可以传送特定于租户的值,而无需发布新的二进制文件。
- 通过在
npx cap sync之前的 CI 构建期间替换秘密,使秘密远离源代码控制。