复制页面选项
复制一个设置提示,包含安装步骤和此插件的完整Markdown指南。
每个Cloud Build配置选项的完整参考。使用此页面查找任何构建设置的CLI标志、环境变量或凭据密钥。
配置顺序
配置顺序每个构建选项都可以通过多种方式设置。当同一个选项在多个地方设置时,优先级更高的来源会获胜:
flowchart LR
A["🔧 CLI Flag"] -->|overrides| B["🌍 Environment Variable"]
B -->|overrides| C["📁 Local Credentials"]
C -->|overrides| D["🏠 Global Credentials"]
style A fill:#6366f1,color:#fff,stroke:#4f46e5
style B fill:#8b5cf6,color:#fff,stroke:#7c3aed
style C fill:#a78bfa,color:#fff,stroke:#8b5cf6
style D fill:#c4b5fd,color:#1e1b4b,stroke:#a78bfa
示例: 如果您的保存的凭据有问题 SKIP_BUILD_NUMBER_BUMP=true 但是您传递 --no-skip-build-number-bump 在 CLI 上,CLI flag 将获胜,构建号将自动递增。
iOS 选项
标题:iOS 选项Code 签名
标题:Code Signing| CLI 标志 | 环境变量 | 凭证密钥 | 默认 | 描述 |
|---|---|---|---|---|
--build-certificate-base64 <cert> | BUILD_CERTIFICATE_BASE64 | BUILD_CERTIFICATE_BASE64 | — | Base64编码 .p12 分发证书 |
--ios-provisioning-profile <map> | CAPGO_IOS_PROVISIONING_MAP | CAPGO_IOS_PROVISIONING_MAP | — | 作为配置文件的 path 或 bundleId=path 映射。支持多目标应用(应用+扩展);配置文件名会自动提取。 |
--p12-password <password> | P12_PASSWORD | P12_PASSWORD | — | 用于 .p12 证书(如果证书没有密码则忽略) |
App Store Connect身份验证
App Store Connect 认证| CLI 标志 | 环境变量 | 凭据密钥 | 默认值 | 描述 |
|---|---|---|---|---|
--apple-key-id <id> | APPLE_KEY_ID | APPLE_KEY_ID | — | App Store Connect API 密钥 ID |
--apple-issuer-id <id> | APPLE_ISSUER_ID | APPLE_ISSUER_ID | — | App Store Connect 发行者 ID (UUID) |
--apple-key-content <content> | APPLE_KEY_CONTENT | APPLE_KEY_CONTENT | — | Base64 编码的 App Store Connect API 密钥 (文件).p8 file) |
--app-store-connect-team-id <id> | APP_STORE_CONNECT_TEAM_ID | APP_STORE_CONNECT_TEAM_ID | — | 不推荐 |
推荐使用 App Store Connect __CAPGO_KEEP_0__ key(
)| CLI 标志 | 应用程序特定密码验证(不推荐) | __CAPGO_KEEP_0__ Flag | 环境变量 | 凭证密钥 |
|---|---|---|---|---|
--apple-id <email> | FASTLANE_USER | FASTLANE_USER | — | 默认值 |
--apple-app-specific-password <password> | FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD | FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD | — | App Store Connect专用密码(xxxx-xxxx-xxxx-xxxx)在 appleid.apple.com |
--apple-app-id <id> | APPLE_APP_ID | APPLE_APP_ID | — | 数字App Store Connect应用ID(例如 1234567890) |
iOS构建设置
iOS构建设置| CLI标志 | 环境变量 | 凭据密钥 | 默认 | 描述 |
|---|---|---|---|---|
--ios-scheme <scheme> | CAPGO_IOS_SCHEME | CAPGO_IOS_SCHEME | App | 构建的Xcode方案 |
--ios-target <target> | CAPGO_IOS_TARGET | CAPGO_IOS_TARGET | App | 读取构建设置的Xcode目标 |
--ios-distribution <mode> | CAPGO_IOS_DISTRIBUTION | CAPGO_IOS_DISTRIBUTION | app_store | 发布模式: app_store 或 ad_hoc |
--xcode-version <version> | CAPGO_IOS_XCODE_VERSION | CAPGO_IOS_XCODE_VERSION | 任何 | 使用此Xcode版本构建,例如 26, 26.0.1 或 27. 一个主要版本接受任何次要版本。 构建失败并列出可用版本,当没有匹配时 |
Xcode 27
Xcode 27使用 Xcode 27 (iOS 27 SDK) 构建 --xcode-version 27:
npx @capgo/cli@latest build request --platform ios --xcode-version 27使用 iOS 27 SDK 构建的应用必须采用 UIScene 生命周期:不带有 UIApplicationSceneManifest 在 Info.plist 和一个场景代理,iOS 27 在启动时会停止应用。Capgo 会在应用启动之前阻止这些构建(预检查) ios/plist-scene-lifecycle-xcode27并且 SceneDelegate 到 UIApplicationSceneManifest 或者继续使用 ios/App/App/Info.plist直到您完成。请参阅 Apple 的 --xcode-version 26 live_update_dynamic_label_to 场景生命周期指南.
CocoaPods 支持结束 (2026 年 12 月)
标题:CocoaPods 支持结束 (2026 年 12 月)Capgo iOS项目使用CocoaPods的构建将在2026年12月停止。请在此之前将项目迁移到Swift Package Manager:查看 Capacitor SPM 指南. Until then, CocoaPods builds keep working; the CLI prints a warning and Capgo emails your organization admins a reminder.
Android 选项
标题:Android 选项密钥库签名
标题:密钥库签名| CLI 标志 | 环境变量 | 凭据密钥 | 默认 | 描述 |
|---|---|---|---|---|
--android-keystore-file <keystore> | ANDROID_KEYSTORE_FILE | ANDROID_KEYSTORE_FILE | — | Base64编码的密钥库文件(.keystore 或 .jks) |
--keystore-key-alias <alias> | KEYSTORE_KEY_ALIAS | KEYSTORE_KEY_ALIAS | key0 | 密钥库密钥别名 |
--keystore-key-password <password> | KEYSTORE_KEY_PASSWORD | KEYSTORE_KEY_PASSWORD | — | 密钥库密钥密码(如果未设置则回退到存储密码) |
--keystore-store-password <password> | KEYSTORE_STORE_PASSWORD | KEYSTORE_STORE_PASSWORD | — | 密钥库存储密码 |
Google Play配置
Google Play配置| CLI标志 | 环境变量 | 凭据密钥 | 默认 | 描述 |
|---|---|---|---|---|
--play-config-json <json> | PLAY_CONFIG_JSON | PLAY_CONFIG_JSON | — | Base64编码的Google Play服务帐户JSON密钥 |
--android-track <track> | PLAY_STORE_TRACK | PLAY_STORE_TRACK | internal (或 production 与 --submit-to-store-review) | Google Play发布跟踪(internal, alpha, beta, production). 从CI环境 / CLI 转发到构建运行器。 |
--android-release-status <status> | PLAY_STORE_RELEASE_STATUS | PLAY_STORE_RELEASE_STATUS | draft (或 completed 与 --submit-to-store-review) | 在选择的跟踪上发布的状态(draft, completed, inProgress, halted) --submit-to-store-review 简体中文 |
Android构建设置
Android构建设置| CLI标志 | 默认 | 描述 |
|---|---|---|
--android-flavor <flavor> | — | 要构建的产品风味(例如 production). 必填 如果您的项目定义了多个风味。 |
--android-track <track> | internal | Google Play跟踪此上传。与 --submit-to-store-review 无跟踪设置时,Capgo默认为 production. |
--android-release-status <status> | draft | Google Play发布状态。与 --submit-to-store-review 和无状态设置时,Capgo 默认为 completed. |
--in-app-update-priority <0–5> | — | Google Play 应用内更新优先级(更高=更紧急)。 |
--no-playstore-upload | — | 构建和签名,但跳过 Play Store 上传(需要 --output-upload). |
构建控制选项
标题:构建控制选项这些选项适用于 iOS 和 Android 构建。
构建模式
标题:构建模式| CLI 标志 | 默认值 | 描述 |
|---|---|---|
--platform <platform> | — | 必填项 ios 或 android |
--build-mode <mode> | release | debug 或 release |
--path <path> | . | 项目目录 |
--verbose | false | 启用详细构建日志 |
--ai-analytics | false | 构建失败时,发送日志至Capgo AI 进行诊断 — 见 AI 构建诊断 |
构建号控制
标题:构建号控制| CLI 标志 | 环境变量 | 凭证密钥 | 默认值 | 简介 |
|---|---|---|---|---|
--skip-build-number-bump | SKIP_BUILD_NUMBER_BUMP | SKIP_BUILD_NUMBER_BUMP | false | 跳过自动构建号/版本 code 自动递增 |
--no-skip-build-number-bump | — | — | — | 显式重新启用自动递增(覆盖保存的凭据) |
默认情况下,Capgo 云构建将自动递增构建号:
- iOS: 从 App Store Connect 获取最新的构建号,递增 1
- Android: 从 Google Play 获取最大值
versionCode当
When --skip-build-number-bump 设置时,构建将使用项目文件(Xcode 项目或 Output Upload)中的版本号 build.gradle).
设置时,构建将使用项目文件(Xcode 项目或 Output Upload)中的版本号
输出上传| CLI标志 | 环境变量 | 凭证密钥 | 默认值 | 描述 |
|---|---|---|---|---|
--output-upload | BUILD_OUTPUT_UPLOAD_ENABLED | BUILD_OUTPUT_UPLOAD_ENABLED | false | 将构建输出(IPA/APK/AAB)上传到Capgo存储中。当通过环境变量设置时,使用 BUILD_OUTPUT_UPLOAD_ENABLED=true. |
--no-output-upload | BUILD_OUTPUT_UPLOAD_ENABLED | — | — | 禁用输出上传。当通过环境变量设置时,使用 BUILD_OUTPUT_UPLOAD_ENABLED=false. |
--output-retention <duration> | BUILD_OUTPUT_RETENTION_SECONDS | BUILD_OUTPUT_RETENTION_SECONDS | 1h | 下载链接有效时间 |
--output-record <path> | — | — | — | 成功构建后,写入一个JSON记录(任务ID、状态、下载URL、QRcode)到 <path> — 使用 build last-output. |
保留格式: 使用人类可读的持续时间,如 1h, 6h, 2d, 7d。最小值为 1 小时,最大值为 7 天。当通过环境变量设置时,使用秒数(例如, 3600 1 小时)。
构建缓存
标题为“构建缓存”的部分Capgo 保存编译的本机艺术品(CocoaPods、Gradle和相关构建输出) 每个应用 以便重复构建可以更快地启动。 构建缓存默认为每个应用启用。 __CAPGO_KEEP_0__ 标志
| CLI 字段 | API field | 默认 | 描述 |
|---|---|---|---|
--no-cache | cache_enabled: false | 缓存 | 禁用此构建的缓存:跳过恢复 并 不要保存一个新的条目 |
--cache-key <value> | cache_key | (省略) | 分区缓存(例如 prod, staging) 省略一个共享的通用缓存 |
CLI等价物: build request 接受 --no-cache 并 --cache-key.
CLI示例:
# Default: restore/save the shared per-app cachebunx @capgo/cli@latest build request com.example.app --platform android
# Separate caches per environmentbunx @capgo/cli@latest build request com.example.app --platform android \ --cache-key=prod
bunx @capgo/cli@latest build request com.example.app --platform android \ --cache-key=staging \ --android-flavor staging
# One-off clean build (no restore, no save)bunx @capgo/cli@latest build request com.example.app --platform ios --no-cacheAPI / webhook 事件包 (当您的集成调用Capgo Build直接时):
{ "platform": "android", "cache_key": "prod"}忽略 cache_key 为共享的通用缓存。设置 cache_key 根据环境进行分区。设置 "cache_enabled": false 禁用缓存单个请求(与设置相同 --no-cache).
如果构建看起来成功,但 artifact 是错误的 — 或 Android AAB 在切换 RC 与生产时丢失 — 试试专用缓存键或一次性的 --no-cache 查看 错误的缓存恢复:.
认证
标题:认证| CLI 标志 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|
-a, --apikey <key> | CAPGO_TOKEN | — | Capgo API 验证信息 |
--supa-host <host> | — | — | 仅限自主托管的自定义 Supabase 主机 |
--supa-anon <key> | — | — | 仅限自主托管的自定义 Supabase 匿名密钥 |
环境变量快速参考
环境变量快速参考复制粘贴以便于 CI/CD pipeline。所有变量都是可选的,只需设置所需的变量。
iOS
iOS# Code signing (required for iOS builds)BUILD_CERTIFICATE_BASE64="<base64-encoded .p12>"CAPGO_IOS_PROVISIONING_MAP="<provisioning map generated by the CLI>"P12_PASSWORD="<certificate password>"
# App Store Connect (required for store submission)APPLE_KEY_ID="ABC1234567"APPLE_ISSUER_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"APPLE_KEY_CONTENT="<base64-encoded .p8 key>"APP_STORE_CONNECT_TEAM_ID="TEAM123456"
# Alternative to the App Store Connect API key above: Apple ID + app-specific# password (e.g. when migrating from Ionic Appflow). All three are required.# FASTLANE_USER="apple-id@example.com"# FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD="xxxx-xxxx-xxxx-xxxx"# APPLE_APP_ID="1234567890"
# Optional iOS settingsCAPGO_IOS_SCHEME="App"CAPGO_IOS_TARGET="App"CAPGO_IOS_XCODE_VERSION="27"Android
Android# Keystore signing (required for Android builds)ANDROID_KEYSTORE_FILE="<base64-encoded .keystore>"KEYSTORE_KEY_ALIAS="my-key-alias"KEYSTORE_KEY_PASSWORD="<key password>"KEYSTORE_STORE_PASSWORD="<store password>"
# Google Play (required for store submission)PLAY_CONFIG_JSON="<base64-encoded service account JSON>"
# Optional Android settingsPLAY_STORE_TRACK="internal"PLAY_STORE_RELEASE_STATUS="draft"构建控制
构建控制# Build behaviorSKIP_BUILD_NUMBER_BUMP="true" # Skip auto-incrementBUILD_OUTPUT_UPLOAD_ENABLED="true" # Upload IPA/APK/AABBUILD_OUTPUT_RETENTION_SECONDS="3600" # 1 hour download link
# AuthenticationCAPGO_TOKEN="your-api-key"凭证存储
凭证存储保存凭证本地
保存凭证本地而不是每次都传递标志或环境变量,保存凭证一次:
# Save iOS credentialsbunx @capgo/cli@latest build credentials save \ --platform ios \ --certificate ./dist_cert.p12 \ --ios-provisioning-profile ./profile.mobileprovision \ --p12-password "cert-password" \ --apple-key ./AuthKey.p8 \ --apple-key-id ABC1234567 \ --apple-issuer-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --apple-team-id TEAM123456
# Save Android credentialsbunx @capgo/cli@latest build credentials save \ --platform android \ --keystore ./release.keystore \ --keystore-alias my-key \ --keystore-key-password "key-pass" \ --keystore-store-password "store-pass" \ --play-config ./play-service-account.json存储位置
存储位置| 标志 | 位置 | 使用场景 |
|---|---|---|
| (默认) | ~/.capgo-credentials/credentials.json | 全局 — 在您的机器上共享所有项目 |
--local | .capgo-credentials.json 在项目根目录 | 按项目 — 覆盖全局配置 |
凭据是按应用程序 ID 键值对 应用 ID (例如) com.example.myapp,所以一个单独的凭据文件可以存储多个应用程序的设置而无冲突。每个应用程序的凭据进一步分解为平台(ios / android).
如果使用本地凭据。永远不要将凭据提交到版本控制中。
管理保存的凭据# List saved credentialsbunx @capgo/cli@latest build credentials list
# Update a specific option without re-entering everythingbunx @capgo/cli@latest build credentials update --skip-build-number-bump
# Clear saved credentialsbunx @capgo/cli@latest build credentials clear --platform ios复制到剪贴板
示例GitHub 动作
示例:GitHub 动作name: Build and Submiton: push: branches: [main]
jobs: build-ios: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: oven-sh/setup-bun@v2 - run: bun install - run: bunx cap sync ios - run: bunx @capgo/cli@latest build request --platform ios env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }} CAPGO_IOS_PROVISIONING_MAP: ${{ secrets.CAPGO_IOS_PROVISIONING_MAP }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }} APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }} APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }} APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
build-android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: oven-sh/setup-bun@v2 - run: bun install - run: bunx cap sync android - run: bunx @capgo/cli@latest build request --platform android env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }} KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }} PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}使用CLI Flags直接
示例:使用CLI Flags直接# Build iOS with all options inlinebunx @capgo/cli@latest build request \ --platform ios \ --build-mode release \ --skip-build-number-bump \ --output-retention 6h \ --apikey YOUR_API_KEY
# Build Android, skip version bump, no output uploadbunx @capgo/cli@latest build request \ --platform android \ --skip-build-number-bump \ --no-output-upload \ --apikey YOUR_API_KEY混合配置
示例:混合配置将保存的凭据与CLI 覆盖项结合:
# Save base credentials oncebunx @capgo/cli@latest build credentials save --platform ios \ --certificate ./cert.p12 \ --ios-provisioning-profile ./profile.mobileprovision \ --output-upload
# Override specific options per-buildbunx @capgo/cli@latest build request --platform ios \ --skip-build-number-bump \ --output-retention 2d保存的凭据提供签名细节,而 CLI 标志会覆盖此特定运行的构建行为。