想要更快、零错误的 iOS 和 Android 应用发布? CI/CD 流水线适用于 Capacitor apps 可自动化构建、测试和部署,将发布周期缩短多达 70%,错误率降低 60%。本指南涵盖从环境配置到使用 进行 Live Update 自动化的所有必要内容。 Capgo.
核心要点:
- 为什么 CI/CD 很重要 Capacitor 应用:构建速度提升 78%,应用商店拒审率降低 60%。
- 必备工具: Xcode 的 Mac, Android Studio 中的错误日志, CocoaPods等等。
- Pipeline 配置:自动化处理诸如
npx cap sync、依赖缓存以及平台专属构建。 - 使用 Capgo 实现 Live Updates:启用发布后更新,支持分阶段推送和回滚保护。
快速设置步骤:
- 准备环境:安装 iOS 和 Android 所需的工具。
- 配置项目:更新
capacitor.config.ts并安全地管理环境变量。 - 构建流水线:自动化两个平台的依赖安装、构建和测试。
- 优化性能:使用缓存、并行构建和条件工作流。
- 添加 Live Update:集成 Capgo,实现安全的 OTA 更新和分阶段发布。
借助 CI/CD,Capacitor 应用可以实现更快、更流畅的发布,同时最大限度地减少错误和人工干预。准备好优化你的工作流了吗?让我们开始吧!
将现有 CI/CD 流水线与移动能力集成
准备 CI/CD 环境
掌握 CI/CD 基础后,下一步是配置环境。这是可靠自动化的核心。
工具与软件配置
确保已安装以下关键工具:
iOS 开发:
- Xcode 14 或更高版本
- Xcode 命令行工具
- CocoaPods 用于管理依赖项
Android 开发:
- Android Studio 中的错误日志
- Android SDK 33 及以上
- Java 开发工具包 (JDK)
要确认已安装 Xcode 命令行工具,请使用:
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 pipeline 连接的关键环节。
需要定义的关键变量:
BUILD_ENV:指定部署阶段(例如,production)IOS_SIGNING_IDENTITY:您的 code 签名证书ANDROID_KEYSTORE_PATH:Android keystore 的路径
对于 Android build,动态生成一个 local.properties CI 过程中的文件:
echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties
在进行 iOS build 时,请确保您的 CI 平台支持 macOS agent。
检查环境是否就绪:
node --version | grep "v16" && xcodebuild -version | grep "Xcode 14" || exit 1
如之前的统计数据所示,妥善管理密钥和凭据可以显著降低 App Store 审核被拒的风险。 [1].
创建 CI/CD 流水线
环境准备就绪后,下一步是为您的 Capacitor 应用设置 CI/CD 流水线。该流水线应高效管理 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 控制台 |
正确配置并行构建可以显著缩短流水线执行时间。
构建验证并打包完成后,即可进入 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 }}
此扩展通过整合 更新管理 并集成到自动构建和部署流程中。
接下来,在构建步骤之后添加上传命令:
- 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
提升 Pipeline 性能
聚焦三个关键领域,可以显著改善你的 pipeline:
Build 速度优化
对于仅涉及 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"
}
}
这些实践为通过以下指标跟踪和改进 pipeline 性能提供了坚实基础:
- 每个阶段的构建时间
- 缓存效率(命中/未命中比率)
- 峰值资源使用率
多环境配置
通过使用特定环境的配置,可以简化多环境管理。以下是一个示例配置:
| 环境 | 配置文件 |
|---|---|
| 开发 | .env.dev |
| Staging 环境 | .env.staging |
| 生产环境 | 安全保险库 |
你可以用这个脚本动态配置环境:
- 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 流水线的团队已实现顺序构建步骤和 Xcode 打包等流程的自动化。他们还针对开发和生产环境使用参数化配置。这种方式消除了对 Gradle 和 Xcode CLI 手动操作的依赖,确保每次都能可靠地生成构建产物。
结合 Capgo 使用,这些改进为简化更新管理打下了基础。
Capgo 用于更新管理
Capgo 与 CI/CD pipeline 无缝协作,在符合 App Store 政策的同时实现即时更新。更新只有在通过 pipeline 内置的自动化测试关卡后才会部署。
通过将自动化 build 与分阶段发布相结合,团队可以取得显著成效: 7 天内覆盖 80% 用户 以及不到一小时的回滚能力。
一种常见策略是并行运行多条部署线。自动化 build 用于内部测试,分阶段发布则面向特定用户群体。这样能确保更新既快又安全,并有严格的自动化测试关卡作为保障。 [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 流水线中的顺畅运行至关重要。有关环境配置的详细信息,请参阅“工具”部分。
继续了解如何为 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 集成的实现细节,以及 GitHub Actions 集成 有关 GitHub Actions 集成的实现细节。