我们很高兴地宣布 Capgo 云构建 - 一种新方法来在云端直接构建您的 Capacitor 应用程序,适用于 iOS 和 Android,无需本地开发环境或 CI/CD 基础设施
我们解决的问题
构建本机移动应用程序一直是 web 开发人员的痛点。您需要:
- 本地开发工具: 安装和维护 Xcode (30+ GB) 和 Android Studio 在您的机器上
- Mac 硬件: iOS 构建需要 Mac,这可能很昂贵或在 Linux/Windows CI 运行器上是不可能的
- CI/CD 配置: 使用缓存、凭据管理等功能设置复杂的 GitHub 动作或其他 CI/CD 工作流
- 依赖管理: 在不同环境中保持最新的构建工具、 SDK 和证书
如果您可以跳过所有这些步骤并只运行一个命令,那将多么方便?
Cloud Build
使用 Capgo Cloud Build,您可以轻松地通过以下命令构建应用:
# First time: Save your credentials locally
npx @capgo/cli@latest build credentials save --platform ios
npx @capgo/cli@latest build credentials save --platform android
# Then build
npx @capgo/cli@latest build com.example.app
只需这样做。无需 Xcode、无需 Android Studio、无需复杂的 CI/CD 配置。只需一个命令,它将:
- 将您的项目压缩到本地
- 将其上传到 Capgo 的云基础设施
- 使用保存的凭据在专用基础设施上构建您的应用
- 实时将日志流式传输到您的终端
- 提交到 App Store 和 Play Store (如果配置)
如何工作
我们使用与 Expo EAS Build 相同的方法构建了 Capgo 云构建 - 专用云基础设施,处理所有复杂性
但这里是什么使我们不同: 我们已经做了三年. We’ve been building native apps for our clients internally since the beginning of Capgo, and we’ve learned exactly what it takes to build Capacitor apps reliably.
我们已经学习了构建 __CAPGO_KEEP_1__ 应用可靠的所有要点
我们的专长
- 过去三年,我们已经: - We’ve created custom Fastlane configurations specifically optimized for Capacitor apps
- - 我们创建了专门针对 Capacitor 应用优化的自定义 Fastlane 配置 掌握了 Capacitor 构建
- 专注于原生 - 我们只构建原生部分(iOS和Android)。您的JavaScript将保留在您的侧 - 我们永远不会触摸或存储您的web code
- 优化了我们的基础设施 - 数千个内部构建帮助我们完善我们的构建系统,然后将其提供给您
这不是一个新的实验。它是经过多年测试的基础设施,我们现在将其作为服务提供。
对于Android
Android构建在安全的 Cloudflare 框架中运行,完成后立即清除。您的应用使用Gradle编译,我们 Capacitor 优化的构建脚本签名并准备好提交到Play Store。
对于iOS
iOS构建在专用Mac机器(Scaleway Mac minis)上运行,按需分配。我们使用自定义的Fastlane设置 - 经过多年 Capacitor 构建的精炼 - 构建、签名和提交您的应用到TestFlight。每个构建在安全的macOS用户帐户中运行,机器在24小时后自动清除。
实时日志
与其他解决方案不同,我们直接将构建日志流式传输到您的终端。您可以观看:
- 依赖项安装
- 编译构建
- Code 签名
- 应用商店提交
- 任何错误或警告
重要的是: 我们不存储您的日志. 他们只在构建期间通过您的 CLI 会话可用,确保您的隐私。
凭证工作原理
在您可以构建之前,您需要提供您的签名凭证。 Capgo 将此处理,最大限度地考虑安全性。
本地保存凭证
您的凭证存储在您的机器上,位于 ~/.capgo/credentials.json:
# For iOS - provide certificates and provisioning profiles
npx @capgo/cli@latest build credentials save --platform ios \
--certificate ./path/to/cert.p12 \
--p12-password "your-password" \
--provisioning-profile ./path/to/profile.mobileprovision
# For Android - provide keystore and passwords
npx @capgo/cli@latest build credentials save --platform android \
--keystore ./path/to/keystore.jks \
--keystore-alias "your-alias" \
--keystore-key-password "key-password" \
--keystore-store-password "store-password"
这些凭证 直到您请求构建它们时,项目文件不会上传到 Capgo。 它们会安全地保存在您的机器上。
构建过程中的发生
当您运行构建命令时:
- 本地: CLI 从读取凭证
~/.capgo/credentials.json - 上传:凭证安全地通过 HTTPS 发送到 Capgo 的构建服务器中,伴随着您的项目
- 构建:凭证仅在构建过程中使用
- 清理:凭证在构建完成后自动从 Capgo 服务器中删除
安全保证
我们保证以下关于您的凭据:
- ✅ 永不永久存储 - 凭据仅在Capgo服务器上存储在活动构建期间
- ✅ 自动删除 - 构建完成后立即删除(即使构建失败,24小时内也会删除)
- ✅ 无日志,无工件 - 我们不存储可能包含凭据痕迹的构建日志或IPA/APK文件
- ✅ 临时环境 - 构建环境在使用后完全销毁
- ✅ 直接上架 - 应用程序直接上架App Store/Play Store - Capgo永不保留它们
管理您的凭据
您完全控制保存的凭据:
# List saved credentials (passwords masked)
npx @capgo/cli@latest build credentials list
# Clear credentials for a specific platform
npx @capgo/cli@latest build credentials clear --platform ios
# Clear all credentials
npx @capgo/cli@latest build credentials clear
需要哪些凭据?
对于 iOS:
- 构建证书 (.p12 文件和密码)
- 分发配置文件 (.mobileprovision 文件)
- 可选: App Store Connect API 密钥 (用于自动提交)
对于 Android:
- 密钥库文件 (.jks 或 .keystore)
- 密钥库别名
- 密钥库密钥密码
- 密钥库存储密码
- Optional: Google Play service account JSON (for automated submission)
查看我们的 凭证文档 凭证文档
隐私 & 安全第一
除了凭证之外,我们还设计了整个构建系统,优先考虑隐私和安全:
- 无日志存储: 构建日志实时通过服务器发送事件 (SSE) 流向您的终端,但永远不会持久保存到磁盘或数据库
- 无存储: 构建的 IPA/APK 文件直接从我们的构建机器传输到 App Store/Play Store 服务器 - Capgo 从未存储
- 自动清理:
- Android: 构建沙盒在完成后立即销毁
- iOS: Mac用户账户在构建后清理,机器在24小时后注销
- 隔离构建: 每个iOS构建在一个完全独立的macOS用户账户中运行,拥有自己的密钥链
- 您的Code隐私: 我们只构建原生部分 -您的JavaScript/HTML/CSS永远不会触及我们的服务器
- 无构建历史: 我们不维护您的构建、版本或任何构建元数据的数据库,除了所需的构建
随处使用
Cloud Build无处不在 -您的本地机器、GitHub Actions、GitLab CI或任何CI/CD平台
本地开发
在您的本地机器上,保存凭据一次,随时构建:
# One-time credential setup
npx @capgo/cli@latest build credentials save --platform ios \
--certificate ./certs/dist.p12 \
--p12-password "$P12_PASSWORD" \
--provisioning-profile ./certs/profile.mobileprovision
# Build anytime
npx @capgo/cli@latest build com.example.app --platform ios
CI/CD集成
在 CI 环境中,您可以选择:
选项 1:在 CI 中保存凭据 (推荐使用简洁方式)
# GitHub Actions example
- name: Save credentials and build
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
run: |
# Decode base64-encoded credentials from secrets
echo "${{ secrets.IOS_CERTIFICATE_BASE64 }}" | base64 -d > cert.p12
echo "${{ secrets.PROVISIONING_PROFILE_BASE64 }}" | base64 -d > profile.mobileprovision
# Save credentials
npx @capgo/cli@latest build credentials save --platform ios \
--certificate ./cert.p12 \
--p12-password "$P12_PASSWORD" \
--provisioning-profile ./profile.mobileprovision
# Build
npx @capgo/cli@latest build com.example.app --platform ios
选项 2:在命令行中提供凭据 (适用于高级用例)
您还可以通过环境变量直接传递凭据 - 请参阅 凭据文档 获取详细信息。
无需在 CI 环境中配置 Mac 运行器、管理构建缓存或安装 SDK。Capgo 在云端处理所有这些。
简单透明的定价
我们根据实际使用的构建时间收费:
- Android 构建: 1× __CAPGO_KEEP_0__
- iOS构建: 2× __CAPGO_KEEP_0__ (由于专用Mac硬件成本)
无惊喜费用,无最低承诺。您只为使用的内容付费。
您的Code,您的责任
One important principle of Capgo Cloud Build: 我们只编译原生部分.
您的JavaScript、HTML和CSS将留在您的控制之下。我们不会处理、检查或存储您的Webcode。您负责在本地使用 npm run build 或您的首选构建工具)构建Web资产,我们处理原生编译。
这种分离是有意的:
- 更好的安全性 -您的应用逻辑永远不会离开您的控制
- 更快的构建 - 我们不浪费时间重建您的 web code
- 明确的责任 - 您控制您的 web 构建过程,我们处理原生复杂性
关于实时更新?
Cloud Build 补充了我们的现有 实时更新系统. 这是它们如何协同工作的示例:
- Cloud Build: 对于原生应用程序更改(插件,权限,原生 code)
- 实时更新: 对于 web code 更改(HTML,CSS,JavaScript)
在添加新插件或更改本机配置时,请使用 Cloud Build。对于其他情况,请使用实时更新。它们共同为您提供了最快的部署工作流程。
当前状态:公开测试版
Cloud Build 目前处于 公开测试版。我们正在与一小群早期采用者合作,完善体验并在向所有人开放之前进行测试。
想尝试一下吗? 加入我们的 Discord
并告诉我们 - 我们很想让您成为早期测试者!
开始 准备在不麻烦的情况下构建?查看 Cloud Build 文档
- 设置凭证 - iOS证书和Android密钥库
- 入门指南 - 在5分钟内完成您的第一个构建
- iOS专用设置 - 证书、分发配置文件和App Store Connect
- Android专用设置 - 密钥库和Play Store配置
- CI/CD集成 - 在管道中自动构建
- 故障排除 - 常见问题和解决方案
What's Next?
We're actively working on:
- 更快的iOS构建: 缓存依赖项以减少构建时间
- 构建工件存储: 可选下载IPA/APK文件用于手动分发
- 自定义构建脚本: 支持预/后构建钩子和自定义Fastlane车道
- 构建日志历史: 可选日志存储用于调试和审计
We're building Capgo Cloud Build to be the simplest, most developer-friendly way to build native mobile apps. If you have feedback or feature requests, we'd love to hear from you in our Discord社区.
快乐编码!