跳过主要内容

设置Capacitor应用的CI/CD

了解如何使用CI/CD管道来优化iOS和Android应用的发布流程,提高效率并减少错误。

设置Capacitor应用的CI/CD

想象一下,能更快、更准确地发布 iOS 和 Android 应用程序吗? CI/CD pipeline Capacitor 通过自动化构建、测试和部署,CI/CD pipeline 可以将发布时间缩短 70%、错误率降低 60%。本指南将涵盖从设置环境到自动化实时更新的所有内容,包括使用 Capgo.

关键点摘要:

  • 为什么CI/CD对于 Capacitor apps应用程序如此重要:
  • 可以提高构建速度 78%、降低商店拒绝率 60%。: 必备工具:, Xcode:, CocoaPods, 和更多。
  • Pipeline 设置: 自动化任务如 npx cap sync, 依赖项缓存,以及平台特定构建。
  • Live updates with Capgo: 启用发布后更新,带有分阶段发布和回滚保障。

快速设置步骤:

  1. 准备环境: 安装 iOS 和 Android 所需工具。
  2. 配置项目: 更新 capacitor.config.ts 并且安全地管理环境变量。
  3. 构建管道: 为两种平台自动安装依赖项、构建和测试。
  4. 优化性能: 使用缓存、并行构建和条件工作流。
  5. 添加实时更新: 使用 Capgo 实现安全的、按阶段发布的 OTA 更新。

通过 CI/CD,Capacitor 应用程序实现更快、更Smooth 的发布,同时减少错误和手动干预。准备优化您的工作流程?让我们深入了解!

将您的现有 CI/CD Pipelines 与移动功能集成

准备您的 CI/CD 环境

一旦您掌握了 CI/CD 的基本概念,下一步就是设置环境。这是可靠自动化的基础。

工具和软件设置

确保您已安装这些关键工具:

对于 iOS 开发:

  • Xcode 14 或更高版本
  • Xcode 命令行工具
  • CocoaPods 用于管理依赖项

对于 Android 开发:

  • Android Studio
  • Android SDK 33 或更高版本
  • Java 开发工具包 (JDK)

要确认您的 Xcode 命令行工具已安装,请使用:

xcode-select -p

创建一个 Capacitor Capacitor

Capacitor Framework Documentation Website

Your Capacitor project needs to be configured correctly for CI/CD workflows. The capacitor.config.ts Capacitor

const config: CapacitorConfig = {
  appId: 'com.example.app',
  webDir: 'build',
  ios: { 
    scheme: 'MyApp'
  }
}

您的项目需要正确配置才能支持CI/CD工作流程。

文件是此设置的核心:

此文件确保您的项目符合CI/CD要求。

设置环境变量

  • BUILD_ENV安全管理凭证是链接环境设置与CI/CD管道的关键部分。 production)
  • IOS_SIGNING_IDENTITY: Your code signing certificate
  • ANDROID_KEYSTORE_PATH: Android Keystore 路径

为 Android 构建而动态生成一个文件: local.properties 当处理 iOS 构建时,请确保您的 CI 平台支持 macOS agent。

echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties

检查您的环境是否准备就绪:

正确管理密钥和凭据可以显著降低应用商店拒绝的机会,正如之前的统计数据所述

node --version | grep "v16" && xcodebuild -version | grep "Xcode 14" || exit 1

创建您的 CI/CD pipeline [1].

一旦您的环境准备就绪,下一步就是为您的

__CAPGO_KEEP_0__ 应用 Capacitor appPage/area: Capgo solutions marketing page. Role: Short UI label or navigation item. Seen in: page solutions/white-label.astro. Preserve Capgo product/brand and developer terms exactly. Message key `solutions_white_label_visual_cell1_value` (Solutions White Label Visual Cell1 Value).

。该管道应高效地管理 Web 资产和本机平台构建。

安装和更新依赖项

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 }}

对于部署,设置平台特定的工件处理:

平台 工件类型 Distribution Channel
iOS .ipa App Store Connect
Android .aab Google Play Console

正确配置后,使用并行构建可以显著减少管道执行时间。

您的构建验证和打包后,您就可以继续使用Capgo进行实时更新(下一节将讨论)。

sbb-itb-f9944d2

添加 Capgo for Live Updates

Capgo Live Update Dashboard Interface

将Capgo集成到您的工作流程中可以增强CI/CD流程,通过启用发布后更新。以下是如何设置它的步骤:

Capgo Pipeline Configuration

首先,在管道环境中安装 Capgo CLI 将此添加到CI/CD生命周期中,通过将

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

__CAPGO_KEEP_0__ 安全更新,配置验证设置如下:

{
  "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

提高管道性能

关注三个关键领域可以显著改善管道:

构建速度优化

对于仅有web变化的项目,使用 npx cap sync 可以通过跳过全native重建来节省时间,减少重建时间约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"
  }
}

这些实践提供了一个坚实的框架,用于通过以下指标来跟踪和改进管道性能:

  • 每个阶段的构建时间
  • 缓存效率(命中/丢失率)
  • Peak resource usage

Multi-Environment Setup

通过环境特定的配置来简化管理多个环境。以下是一个示例设置:

环境 配置文件
开发 .env.dev
测试 .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在开发中的作用

使用CI/CD管道来管理Capacitor应用显著提高了工作流的效率。根据行业数据,团队可以实现 50-70%的更快的发布周期 通过同时进行iOS和Android的构建 [3].通过自动化任务,如依赖项安装和平台同步,减少了部署错误的数量 40-60% [1][2].

例如,使用Azure DevOps管道的团队已经自动化了顺序构建步骤和Xcode打包。他们还使用了参数化环境来支持开发和生产。这一方法消除了手动Gradle和XcodeCLI操作的需求,确保了每次都能创建可靠的工件。

这些改进为CI/CD管道与Capgo一起使用时的更新管理提供了基础。

Capgo用于更新管理

Capgo与CI/CD管道一起使用,能够即时更新,同时保持与应用商店政策的兼容性。更新只在通过管道内置的自动化测试门户后才会部署。

通过结合自动化构建和分阶段发布,团队实现了令人印象深刻的结果: 7天内覆盖80%的用户 并且在1小时内可以回滚。

A种常见的策略涉及并行部署跟踪。自动化构建用于内部测试,而分阶段的发布目标用户群。这样确保更新既快又安全,背后是严格的自动化测试门控 [1].

FAQ

如何创建一个Capacitor应用?

构建一个Capacitor应用涉及几个直接的步骤:

  1. 设置环境:在您的系统上安装Node.js和npm。然后,使用Ionic CLI来启动一个新的项目,带有Capacitor支持:

    ionic start myApp tabs --capacitor
  2. 添加平台支持:添加您要目标的平台,如iOS或Android:

    npx cap add ios
    npx cap add android
  3. 同步您的webcode:确保您的webcode与native平台保持一致,通过运行:

    npx cap sync

同步步骤对于保持应用在各个平台的一致性以及在CI/CD管道中保持平滑操作至关重要。有关设置环境的更多详细信息,请参阅工具部分。

继续阅读《设置CI/CD的Capacitor应用》

如果您正在使用 Setting Up CI/CD for Capacitor Apps 为 __CAPGO_KEEP_0__ 应用程序计划 CI/CD 自动化,连接它与 Capgo CI/CD 为 Capgo CI/CD 产品工作流 Capgo Native Builds 为 Capgo 原生构建 产品工作流 Capgo Integrations 为 Capgo 集成 产品工作流 CI/CD 集成 CI/CD 集成 GitHub Actions Integration 为 GitHub Actions Integration 的实现细节。

实时更新Capacitor应用

当web层bug活跃时,通过Capgo将修复推送,而不是等待几天的应用商店审批。用户在后台接收更新,而原生变化保持在正常的审批路径中。

来自马丁的人性化支持

立即开始

最新博客文章

Capgo 为您提供创建真正专业的移动应用所需的最佳见解。