创建环境特定的配置方案
支持平台: iOS, Android
在软件开发周期中,许多团队会使用不同的环境。不同环境下的配置可能存在差异,例如包名(bundle ID)、深度链接方案、应用图标和启动画面等。
Capacitor 配置文件负责处理工具链和插件配置的高层选项。通过 iOS 的 schemes 和 Android 的产品变体(product flavors),开发者可以为不同环境提供差异化的应用配置。结合 Capacitor CLI,开发者能够为不同环境构建应用。
本指南将带您配置一个 QA 测试环境,与默认环境配置共存。为展示环境差异,我们将使两个环境的应用名称和包名各不相同。
准备 Capacitor 应用
首先需要已添加 iOS 和 Android 平台的 Capacitor 应用。若已有现成项目,可跳过本节。
您可以选择:
配置需使用 TypeScript,本指南将使用 capacitor.config.ts
动态导出不同配置。
添加原生平台前,必须先构建项目:
npm run build
构建完成后添加平台:
npm install @capacitor/ios @capacitor/android
npx cap add ios
npx cap add android
配置 iOS 环境方案
创建 Xcode 新目标
用 Xcode 打开项目:npx cap open ios
- 在项目导航面板中进入项目设置
- 右键点击"App"目标选择复制
- 重命名新目标为"App QA"
此操作会创建"App copy"方案和 App copy-Info.plist
文件。
重命名方案和 Plist 文件
- 在 Scheme 菜单中选择管理方案...
- 将"App copy"重命名为"App QA"
- 将
App copy-Info.plist
重命名为App QA-Info.plist
- 在"App QA"目标的构建设置中,更新 Info.plist 文件路径
现在项目包含两个可运行方案:"App"和"App QA"。Capacitor 配置文件可指定构建方案。
设置环境特定值
在"App QA"目标的通用设置中,修改显示名称和包标识符,确保与默认目标不同。这些值会保存在对应的 Info.plist
中。
更新 Podfile 并同步
编辑 /ios/App/Podfile
,复制"App"目标配置块并修改为:
target 'App QA' do
capacitor_pods
# 在此添加依赖
end
运行 npx cap sync
同步插件。
添加 iOS 专属配置
在 capacitor.config.ts
中添加:
ios: {
scheme: 'App QA',
}
测试运行:npx cap run ios
,可见应用名称已变化。
配置 Android 产品变体
修改 Gradle 文件
编辑 /android/app/build.gradle
,在 android
块中添加:
flavorDimensions = ["environment"]
productFlavors {
dev {
dimension "environment"
manifestPlaceholders = [displayName:"My App"]
}
qa {
dimension "environment"
applicationIdSuffix ".qa"
manifestPlaceholders = [displayName:"My App - QA"]
}
}
说明:
- "dev"代表非 QA 环境
applicationIdSuffix
会在包名后追加.qa
manifestPlaceholders
可在清单文件中使用
更新 Android 清单文件
将 AndroidManifest.xml
中的 android:label
值改为 ${displayName}
。
添加 Android 专属配置
在 capacitor.config.ts
中添加:
android: {
flavor: "qa",
},
测试运行:npx cap run android
,观察应用名称变化。