传统上,构建 iOS 应用意味着一个东西:您需要 Xcode,而 Xcode 意味着 macOS。这种约束如果您的整个团队都在 Windows 或 Linux 上,或者您只是不想维护一个 Mac 构建机器,会很烦人。
组合 Capacitor (生成原生 iOS 项目) Capgo 构建 (在云中编译和签名)
让您从 Windows 工作站上进行 iOS 构建和 TestFlight 提交。
- 本指南展示了一种实用工作流程,适用于团队:
- Keep
ios/在您的仓库中(以便原生状态可复制)。 - 运行
cap sync在 Windows 上构建 iOS 应用程序的好处在于,您可以在本地构建 Web 应用程序(以便您的 Web 构建被复制到 iOS 项目中)。 - 使用Capgo触发一个iOS云构建:Capgo Build。
您实际上构建的位置
在一个 Capacitor 应用程序中,有两个独立的“构建”:
- Web 构建 (您的 JS/HTML/CSS): 您在 Windows 上本地完成此项。
- 原生构建 (Xcode 档案,签名,上传): Capgo Build 在 Mac 硬件上在云中完成此项。
这就是关键:Capgo Build 编译原生项目,但它期望您的 Web 资产已经同步到 ios/.
前提条件
- A working Capacitor app (any framework is fine).
- 一个正常工作的__CAPGO_KEEP_0__应用(任何框架都可以)。
- An Apple Developer account.
- Your Capgo 账户和 API token (
CAPGO_TOKEN).
1) Create or Prepare Your Capacitor App (Windows)
If you already have a web app, skip to the Capacitor steps.
Your __CAPGO_KEEP_0__ account and __CAPGO_KEEP_1__ token (
bun create vite@latest my-app
cd my-app
bun install
您的__CAPGO_KEEP_0__账户和__CAPGO_KEEP_1__令牌( dist/ 1) Create or Prepare Your __CAPGO_KEEP_0__ App (Windows)
bun run build
1)创建或准备您的Capacitor Windows应用
If you already have a web app, skip to the Capacitor steps.
bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli
如果您已经有一个Web应用,跳过到__CAPGO_KEEP_0__步骤。
bunx cap init
bunx cap add ios
在这个阶段,您将拥有一个 ios/ directory. 将它提交到git. Capgo 构建会编译内部内容 ios/所以你想要它具有版本号和可重现性。
3) 在构建 iOS 应用之前,始终同步 Web 资产
每次您修改您的 Web 应用程序时,在 Windows 上执行以下序列:
bun run build
bunx cap sync ios
cap sync 是指将您的构建的 Web 资产复制到原生 iOS 项目中的工具(Capgo Build 将实际编译的文件)。
4) 安装并验证 Capgo CLI
Capgo Build 是通过 Capgo CLI 触发的。使用 bun, bunx:
bunx @capgo/cli@latest login
或通过环境变量在您的 shell/CI 中设置 token:
export CAPGO_TOKEN="your_api_key_here"
5) 配置 iOS 签名以支持云构建
为了构建 iOS,您需要签名材料:
- Apple Distribution 证书(
.p12)和其密码 - App Store Connect__CAPGO_KEEP_0__密钥(
.mobileprovision) - App Store Connect API 密钥 (
AuthKey_XXXXXX.p8如果您仍然需要生成这些文件,请遵循__CAPGO_KEEP_0__文档:
如果您仍然需要生成这些文件,请参阅Capgo文档。
一旦您有了本地文件,请将它们保存到__CAPGO_KEEP_0__构建:
当您拥有这些文件本地化后,请将它们保存为Capgo Build:
bunx @capgo/cli@latest build credentials save \
--platform ios \
--certificate ./cert.p12 \
--p12-password "password" \
--provisioning-profile ./profile.mobileprovision \
--apple-key ./AuthKey.p8 \
--apple-key-id "KEY123" \
--apple-issuer-id "issuer-uuid" \
--apple-team-id "team-id"
命令 build credentials save 命令
6) 从 Windows 触发 iOS 构建
从您的应用程序文件夹:
bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release
您将在终端中看到实时日志。如果您的 App Store Connect 密钥已配置,Capgo 构建可以自动将生成的构建提交到 TestFlight。
7) 快速迭代:仅限 Web 的更改
Capgo 构建用于本机更改:
- 添加/删除 Capacitor 插件
- 更改本机权限
- 更改图标/启动屏幕
- 更新 Capacitor
- 任何 Swift/Objective-C 更改
对于日常 UI 调整和 JavaScript 修复,您通常希望 实时更新 不需要每次重建原生二进制文件 (OTA)。
一个好的团队工作流程是:
- 频繁的网页变化时使用 Live Updates。
- 当原生变化需要时,偶尔使用 Capgo Build。
常见的 Windows pitfall (和解决方案)。
- 忘记
cap sync: 如果您的 UI 变化在 iOS 构建中丢失,很可能是您构建了 Web 应用,但没有将其同步到ios/. - 未提交
ios/: Capgo Build 会编译原生项目。如果文件夹不在 Git (或不在您的构建上下文) 中,则无法重现您的应用。 - 原生重建不更新插件: 添加插件是一种原生变化;计划一个 Capgo Build 运行 (和一个商店提交) 之后。
总结
在 Windows 上无法运行 Xcode,但您可以从 Windows 上发布 iOS 应用: 可以 将您的 Web 应用包装在 __CAPGO_KEEP_0__ 中(在您的仓库中)
- 将您的网页应用包裹在 Capacitor (
ios/使用 __CAPGO_KEEP_0__ Build 将您的 iOS 二进制文件编译、签名并提交到 __CAPGO_KEEP_1__ - 继续使用 __CAPGO_KEEP_0__ 和 __CAPGO_KEEP_1__ Build 构建 iOS 应用
cap sync. - 使用Capgo Build 来编译、签名并提交您的 iOS 二进制文件,从而在CLI中进行。
使用 Capacitor 和 Capgo Build 构建 iOS 应用
来规划 CI/CD 自动化,连接它到 __CAPGO_KEEP_0__ CI/CD 在 Windows 上使用 Capacitor 和 Capgo Build 构建 iOS 应用 连接它以规划CI/CD自动化 Capgo Windows CI/CD 为Capgo产品工作流程在Capgo CI/CD中 Capgo原生构建 为Capgo产品工作流程在Capgo原生构建中 Capgo集成 为产品工作流程中的Capgo集成 为__CAPGO_KEEP_0__产品工作流程在__CAPGO_KEEP_0__集成中 CI/CD集成 GitHub Capgo 行动集成 for the implementation detail in GitHub Actions Integration.