__CAPGO_KEEP_0__首页
CI/CD

使用Codemagic实现自动Capacitor IOS构建

如何在5分钟内使用Codemagic和Codemagic为您的IOS Ionic应用程序设置CI/CD管道(2024)

马丁·多纳迪尤

马丁·多纳迪尤

内容营销人员

使用Codemagic实现自动Capacitor IOS构建

使用Codemagic实现iOS的持续交付

前提条件

继续教程之前…

  • 拥有iOS开发者计划会员资格
  • 想看吗 😆…

关于价格的重要提示

价格 - Codemagic Action

https://codemagic.io/pricing/

该服务是 ‘免费的’ 每月500个macOS M1分钟,取决于选择的机器.
我们将使用一个 macOS M1 机器,截图中显示了其价格和限制(价格截至教程创建,可能会在未来发生变化)

🔴 已知要求和价格后,如果您喜欢,我们继续…

📣 在文章中,我们假设我们已经在iTunes Connect中创建了应用,我们已经拥有了Apple生态系统的证书,Codemagic将为我们设置一切!

让我们开始探索 🤿

本文的步骤

  1. 使用 App Store Connect API 与 Codemagic
  2. 要求
  3. 创建 App Store Connect API 密钥
  4. 使用 App Store Connect API 密钥
  5. 复制 Fastlane 文件
  6. 配置 Codemagic

1. 使用 App Store Connect API 与 Codemagic

从 2021 年 2 月开始,所有用户必须使用两步验证或两因素认证才能登录 App Store Connect。这种额外的安全层对于您的 Apple ID 有助于确保您是唯一能够访问帐户的人。
来自 Apple 支持

开始使用 Match 需要撤销您的现有证书。但是,不用担心,您将直接获得新的证书。

需求

为了能够使用 App Store Connect API, Codemagic 需要 三个 证书颁发者 ID。

  1. 密钥 ID。
  2. 密钥文件或密钥内容。
  3. 创建 App Store Connect __CAPGO_KEEP_0__ 密钥

Creating an App Store Connect API Key

1 — 登录到

App Store Connect __CAPGO_KEEP_0__.

2 — 选择 用户和访问.

App Store Connect 用户访问

3 — 选择API密钥选项卡。

App Store Connect API密钥

4 — 点击生成API密钥或添加(+)按钮。

App Store Connect API密钥创建

5 — 请输入密钥名称并选择访问级别。我们建议选择 App Manager 访问权限,了解更多关于Apple Developer Program角色权限 这里

App Store Connect API密钥创建名称

6 — 点击生成。

一个 API 密钥的访问权限不能被限制到特定的应用程序。

新密钥的名称、密钥 ID、下载链接和其他信息将出现在页面上。

App Store Connect 下载密钥

在这里获取所有三个必要的信息: <1> 问题 ID。
<2> 密钥 ID。
<3> 点击“下载 API 密钥”以下载您的 API 私有密钥。下载链接仅在私有密钥尚未下载时才会出现。Apple 不会保留私有密钥的副本。因此,您只能下载一次。

🔴 将您的私有密钥存储在安全的地方。您不应共享您的密钥、将密钥存储在 code 仓库中或将密钥包含在客户端 code 中。

将 App Store Connect API 密钥添加到 Codemagic

  1. 打开您的 Codemagic 团队设置 选择团队 选择 __CAPGO_KEEP_0__ 签名身份 code 选择 code 签名身份 并上传证书 上传证书

  2. 点击 添加密钥 按钮。

  3. 输入 App Store Connect API key name这是一个人类可读的名称,用于在应用程序设置中引用密钥。

  4. 输入 Issuer IDKey ID 值。

  5. 点击 选择一个 .p8 文件 或将文件拖拽到上传 App Store Connect API key

  6. 点击 保存.

现在我们可以使用 App Store Connect API key 管理 Codemagic,太棒了!

2. 创建证书和配置文件

证书

打开 XCode 并进入 设置 > > > Apple ID > Teams 选择您的团队。

Code 签名身份

点击 管理证书 > + 选择 Apple Distribution.

Apple Distribution

然后您可以创建一个新证书。

然后你需要去到钥匙串中下载证书作为一个 .p12 文件。

要做到这一点,你需要去到钥匙串切换到 登录 钥匙串 我的证书.

我的证书

然后你可以选择你要下载的证书。 (通过证书的日期来查找)

然后右键单击证书并选择 导出.

选择文件格式 个人信息交换 (.p12).

会下载证书作为一个 .p12 文件。

配置文件

打开 苹果开发者 并选择正确的团队。

然后创建一个新的配置文件,点击 +

创建一个新的配置文件

并选择 App Store Connect.

选择 App Store Connect

然后您需要选择正确的应用程序,注意您不能使用通配符否则签名会失败。

选择正确的应用

选择之前创建的正确证书(查找过期日期,应与今天相同的日期和月份)并点击 继续.

选择正确的证书

最后输入配置文件的名称并点击 生成.

配置文件名称将用于在 Codemagic 中识别配置文件。

生成配置文件

您可以将配置文件下载为 .mobileprovision 文件。

下载配置文件

添加Code签名证书

让Codemagic上传code签名证书作为PKCS#12存档,包含证书和私钥,后者用于使用证书。 参考名称,可以在配置中使用该名称来获取特定文件。 codemagic.yaml 上传证书

  • 生成新证书
  • 从开发者门户获取
  • 打开您的Codemagic团队设置,转到
  1. codemagic.yaml设置 > __CAPGO_KEEP_0__签名身份 Code signing identities.
  2. __CAPGO_KEEP_0__是Codemagic支持的签名证书类型 iOS证书 标签。
  3. 通过点击 选择一个 .p12 或 .pem 文件 或将其拖拽到指示框架中。
  4. 输入 证书密码 并选择一个 参考名称.
  5. 点击 添加证书

添加分发配置文件

Codemagic允许您上传用于应用程序的配置文件或从Apple Developer Portal中获取配置文件。

添加到Code签名身份中的配置文件的类型、团队、包ID和过期日期将显示。另外,Codemagic将告知您是否在Code签名身份中存在匹配的code签名证书(签名身份字段中的绿色勾)或否。 证书 3. 配置Codemagic

配置Codemagic密钥

您想知道这些值的来源吗?答案不再是秘密了,它来自您的项目的密钥。 🤦

4. 配置Codemagic工作流文件 ENV 创建一个名为__CAPGO_KEEP_0__的文件并将其放在项目的根目录中,然后添加以下内容。

此工作流应手动触发或在每次__CAPGO_KEEP_0__后触发。

配置 codemagic.yml 设置

workflows:
  ionic-capacitor-ios-workflow:
    name: Capacitor iOS Workflow
    max_build_duration: 120
    instance_type: mac_mini_m1
    integrations:
      app_store_connect: CodeMagic
    environment:
      ios_signing:
        distribution_type: app_store
        bundle_identifier: YOUR_BUNDLE_IDENTIFIER
      vars:
        XCODE_WORKSPACE: ios/App/App.xcworkspace
        XCODE_SCHEME: App
        APP_STORE_APP_ID: YOUR_APP_STORE_APP_ID
      node: v20.14.0
      xcode: 15.4
      cocoapods: default
    triggering:
      events:
        - tag
      tag_patterns:
        - pattern: '*'
          include: true
    scripts:
      - name: Install dependencies
        script: |
          npm install
      - name: Cocoapods installation
        script: |
          cd ios/App && pod install
      - name: Update dependencies and copy web assets to native project
        script: |
          npm run build
          npx cap sync ios
      - name: Set up code signing settings on Xcode project
        script: |
          xcode-project use-profiles
      - name: Increment build number
        script: |
          cd $CM_BUILD_DIR/ios/App
          LATEST_BUILD_NUMBER=$(app-store-connect get-latest-app-store-build-number "$APP_ID")
          agvtool new-version -all $(($LATEST_BUILD_NUMBER + 1))
      - name: Build ipa for distribution
        script: |
          xcode-project build-ipa \
            --workspace "$XCODE_WORKSPACE" \
            --scheme "$XCODE_SCHEME"
    artifacts:
      - build/ios/ipa/*.ipa
      - /tmp/xcodebuild_logs/*.log
      - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app
      - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM
    publishing:
      email:
        recipients:
          - YOUR_EMAIL
        notify:
          success: true # To not receive a notification when a build succeeds
          failure: false # To not receive a notification when a build fails
      app_store_connect:
        auth: integration
        # Configuration related to TestFlight (optional)
        # Note: This action is performed during post-processing.
        submit_to_testflight: true
        # Configuration related to App Store (optional)
        # Note: This action is performed during post-processing.
        submit_to_app_store: false

This workflow should be triggered manually or after each GitHub 标签, 如果您需要自动化标签,请参见 自动构建和发布与GitHub动作 首先。

然后,这个工作流程将拉取您的NodeJS依赖项,安装它们并构建您的JavaScript应用程序。

每次您发送新的标签时,测试飞行中的发布将被构建。

您的应用程序不需要使用Ionic,只需Capacitor基础即可,且可以使用旧的Cordova模块,但CapacitorJS插件应优先使用。

5. 触发工作流程

触发工作流程

推送新的提交到分支 maindevelopment 触发工作流程

开始了一个提交

几分钟后,您的 App Store Connect 控制台中应该可以看到构建。

Testflight 控制台

手动启动

您可以手动启动工作流。

首先选择您要构建的应用,然后点击 上下文:Capgo Builder / 原生云构建产品页面。角色:短 UI 标签或导航项。.

开始新构建

选择应用

然后选择您要构建的分支。

选择分支 然后点击.

然后去查看构建列表

构建列表

点击构建以查看结果

构建结果

可以从本地机器部署

是的,您可以轻松地这样做

您可以使用Xcode构建和签署您的应用程序,正如往常一样

感谢

本博客基于以下文章:

继续使用自动化Capacitor IOS构建与Codemagic

如果您正在使用 自动化Capacitor IOS构建与Codemagic 将其与__CAPGO_KEEP_0__ CI/CD 连接到产品工作流程中的Capgo CI/CD Capgo Native Builds 用于产品工作流程中的Capgo Native Builds Capgo Integrations 用于产品工作流程中的Capgo Integrations for the product workflow in Capgo Integrations, 用于CI/CD集成的实现细节 继续使用自动化__CAPGO_KEEP_0__ IOS构建与Codemagic GitHub 行动集成 为 GitHub 行动集成实现细节。

实时更新 Capacitor 应用

当 web 层 bug 活跃时,通过 Capgo 将修复推送,而不是等待几天的应用商店审批。用户在后台接收更新,而原生更改仍在正常审批路径中。

来自马丁的人性化支持

立即开始

最新博客文章

Capgo 给您需要创建真正专业的移动应用的最佳见解。