跳转至正文
教程

如何在 Xcode Cloud 中构建 Ionic Capacitor 应用

使用 Xcode cloud 构建您的 Capacitor JS 应用,无需 MacOS 即可完成。

如何在 Xcode Cloud 中构建 Ionic Capacitor 应用

前提条件

在继续教程之前……

  • 请确保使用 GitHub
  • 使用 Capacitor
  • 您的应用已部署在 App Store
  • 想读一下 😆…

使用 Ionic 是可选的,Cordova 理论上也可以,但我没试过。

关于价格的重要说明

Xcode Cloud 价格

https://developer.apple.com/xcode-cloud/

该服务是“免费”, 达到上限。
您可以在截图中查看价格和限制(价格以教程编写时为准,未来可能会有变动)

🔴 了解完要求和价格后,如果你愿意,我们就继续…

📣 本文假设应用已在 App Store 中创建

简介

要让 Xcode 构建您的 Capacitor 应用,您需要进行一些配置。

准备 Package

请确保您的构建命令已包含在 package.json 脚本中。 然后按如下所示添加 sync:ios 命令。

{
  "scripts": {
    "build": "YOUR BUILD COMMAND",
    "sync:ios": "cap sync ios"
  }
}

这一步将使 post script 能够正常运行

Post clone 脚本

该脚本将在 Xcode cloud 完成 clone 步骤后运行

#!/usr/bin/env bash

set -x

export HOMEBREW_NO_INSTALL_CLEANUP=TRUE
# Install CocoaPods
echo "📦 Install CocoaPods"
brew install cocoapods
brew install node@18
brew link node@18

# Install dependencies
# XCode Cloud is literally broken for 2 months now - https://developer.apple.com/forums/thread/738136?answerId=774510022#774510022
npm config set maxsockets 3
npm ci
# or `pnpm install --frozen-lockfile` or `yarn add --frozen-lockfile` or bun install
npm run build 
# or npm run build
npm run sync:ios

将此文件保存在项目根目录并命名为 ios/App/ci_scripts/ci_post_clone.sh

然后使用此命令赋予该文件执行权限 chmod +x ios/App/ci_scripts/ci_post_clone.sh

创建 Xcode workflow

打开 Xcode(没错,卸载 Xcode 也需要用到它)

然后进入此标签页: Xcode 步骤 1

点击 create workflow,选择你的 App,然后像下图一样点击 next。

Xcode 步骤 2

点击左侧的 Edit workflow Xcode 步骤 2

进入 environments 标签页,选择如下所示的 Mac 12.4 并勾选相应选项 Xcode 步骤 3

选择你的 start condition。 如果你使用和我们相同的 build 方式,建议使用 Tag 而不是 branch,以避免重复 build。

设置你的 env variable Xcode 步骤 4

连接您的 GitHub 账号 Xcode 第 5 步

Xcode 第 6 步

然后启用 workflow 并提交您的首次更改,您应该能看到 Xcode 中的构建正在运行。

构建处理中

在 Xcode Cloud 中, 费用按你运行 CI/CD 工作流所用的 您已将其用于运行 CI/CD workflow。根据经验,构建在 Apple Store 中处理前大约需要 10–15 分钟。

对于私有项目,每次构建的预估成本可能高达 $0.008/min x 5 mins = $0.4,或更多,具体取决于项目的配置或依赖项。

对于开源项目,这完全不是问题。请参阅 定价.

继续阅读《如何在 Xcode Cloud 中构建 Ionic Capacitor 应用》

如果你正在使用 如何在 Xcode Cloud 中构建 Ionic Capacitor 应用 规划 CI/CD 自动化,并将其与 Capgo CI/CD 用于 Capgo CI/CD 中的产品工作流, Capgo Native Build 用于 Capgo Native Builds 中的产品工作流, Capgo 集成 用于 Capgo 集成中的产品工作流, CI/CD 集成 了解 CI/CD 集成的实现细节,以及 GitHub Actions 集成 有关 GitHub Actions 集成的实现细节。

为 Capacitor 应用提供 Live Updates

当 Web 层出现线上 Bug 时,通过 Capgo 发布修复,而不用等 App Store 审核好几天。用户会在后台收到更新,原生变更则仍走正常审核流程。

博客最新动态

Capgo 为你提供打造真正专业的移动应用所需的最有价值的洞察。