⚠️ 首先设置 iOS 凭证
必需: 在构建之前,您必须保存 iOS 凭证。
使用 Capgo 的专用 Mac 基础设施构建 iOS 应用并提交到 TestFlight 和 App Store。
⚠️ 首先设置 iOS 凭证
必需: 在构建之前,您必须保存 iOS 凭证。
iOS 构建在按需配置的专用 Mac 机器(Scaleway Mac minis M4)上运行:
在为 iOS 构建之前,您需要:
npx cap open ios 构建根据您的构建,您需要以下证书类型之一:
| 构建类型 | 需要证书 | 配置文件 |
|---|---|---|
| Development | Apple Development | Development Profile |
| Ad Hoc | Apple Distribution | Ad Hoc Profile |
| App Store | Apple Distribution | App Store Profile |
快速概述:
创建证书签名请求(CSR)
.certSigningRequest 文件在 Apple Developer Portal 中生成证书
.cer 文件)将证书导出为 .p12
.cer 文件将其添加到钥匙串.p12 格式并设置密码(保存此密码!)创建配置文件
.mobileprovision 文件要自动提交到 TestFlight,创建 API 密钥:
.p8 文件(您只能下载一次!)在构建前设置这些凭证:
# iOS 签名(必需)BUILD_CERTIFICATE_BASE64="<base64编码的p12证书>"BUILD_PROVISION_PROFILE_BASE64="<base64编码的mobileprovision>"P12_PASSWORD="<证书密码>"
# App Store Connect API(用于提交)APPLE_KEY_ID="ABC1234567"APPLE_ISSUER_ID="00000000-0000-0000-0000-000000000000"APPLE_KEY_CONTENT="<base64编码的p8密钥>"
# 附加配置APP_STORE_CONNECT_TEAM_ID="1234567890"APPLE_PROFILE_NAME="App Store com.example.app"证书(.p12):
base64 -i YourCertificate.p12 | pbcopy配置文件(.mobileprovision):
base64 -i YourProfile.mobileprovision | pbcopyApp Store Connect 密钥(.p8):
base64 -i AuthKey_ABC1234567.p8 | pbcopybase64 字符串现在在您的剪贴板中 - 将其粘贴到您的环境变量或 CI/CD 密钥中。
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode debug这会创建一个可以安装在已注册设备上的开发构建。
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode release如果您配置了 App Store Connect API 凭证,这会创建 App Store 构建并自动提交到 TestFlight。
name: Build iOS App
on: push: branches: [main]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24'
- name: Install dependencies run: npm ci
- name: Build web assets run: npm run build
- name: Sync Capacitor run: npx cap sync ios
- name: Build iOS app env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }} BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.IOS_PROVISION_PROFILE }} 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.TEAM_ID }} run: | npx @capgo/cli@latest build ${{ secrets.APP_ID }} \ --platform ios \ --build-mode release机器配置 (1-2分钟)
用户隔离 (~10秒)
job-<jobId>/Users/job-<jobId>项目设置 (~30秒)
Fastlane 构建 (3-8分钟)
App Store 提交 (1-2分钟,如果配置)
清理 (立即)
机器释放 (24小时后)
我们的 iOS 构建环境包括:
典型的 iOS 构建时间:
| 构建类型 | 首次构建 | 后续构建* |
|---|---|---|
| Debug | 5-7 分钟 | 4-6 分钟 |
| Release | 7-10 分钟 | 5-8 分钟 |
*如果在 24 小时窗口内重用同一台机器,后续构建可能更快。
“Code signing failed”
“Provisioning profile doesn’t include signing certificate”
“App Store Connect authentication failed”
“Build timeout after 10 minutes”
所有构建日志都实时流式传输。注意这些关键阶段:
✔ Machine assigned: m-abc123→ Creating user: job-abc123→ Installing CocoaPods dependencies...→ Building iOS app...→ Code signing with certificate...→ Uploading to App Store Connect...✔ Build succeeded如果构建失败,日志中将清楚地显示错误,并提供具体的 Fastlane/Xcode 错误消息。
在使用云构建之前,始终确保您的 iOS 构建在本地可以工作:
npx cap open ios# 在 Xcode 中构建切勿将证书或密钥提交到存储库。始终使用:
为了更快的构建,确保您的 package.json 和 Podfile.lock 已提交到版本控制。
密切关注构建持续时间以优化成本:
# CLI 在最后显示构建时间Build succeeded in 6m 42s (13.4 billing minutes at 2× rate)