跳过主要内容
教程

使用Capacitor和Capgo在Windows上构建iOS应用

从Windows开发机器上将真实的iOS二进制文件交付:将您的Web应用包装在Capacitor中,然后使用Capgo Build来编译、签名并提交到TestFlight,无需拥有Mac.

文章来源

马丁·多纳迪厄

作者

瓦莱里亚

审稿人

乔丹

编辑

使用 Capgo 和 Capacitor 和 Capgo 构建

传统上,构建 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__ 中(在您的仓库中)

  1. 将您的网页应用包裹在 Capacitor (ios/ 使用 __CAPGO_KEEP_0__ Build 将您的 iOS 二进制文件编译、签名并提交到 __CAPGO_KEEP_1__
  2. 继续使用 __CAPGO_KEEP_0__ 和 __CAPGO_KEEP_1__ Build 构建 iOS 应用 cap sync.
  3. 使用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.

实时更新 Capacitor 应用

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

当 web 层面的 bug 在实时更新中,通过 __CAPGO_KEEP_0__ 发布修复,而不是等待几天的 app store 审批。用户在后台接收更新,而原生变化仍然在正常的审批路径中。

上下文:Capgo 营销网站。角色:支持描述段落或元描述。见于:组件 GetStarted.astro。保留 Capgo 产品/品牌和开发者术语完全不变。消息键 `instant_updates_for_capacitor_apps_description` (Instant Updates For Capacitor Apps Description)。

人工支持从 Martin

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