__CAPGO_KEEP_0__首页
Capgo logo
自动构建

Automatic Capacitor IOS build with Codemagic

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

文章来源

马丁·多纳迪

作者

瓦莱里亚

审稿人

乔丹

编辑

自动Capacitor IOS 构建与 Codemagic

使用 Codemagic 的 iOS 持续交付

前提条件

继续教程之前…

  • iOS 开发者计划会员资格。
  • 想看😆…

关于价格的重要信息

价格 Codemagic 动作

https://codemagic.io/zh/%E8%B4%B8%E6%AC%BE/

该服务是 ‘免费 每月最高可使用 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 Key
  5. 复制 Fastlane 文件
  6. 配置 Codemagic

1. 使用 App Store Connect API 与 Codemagic

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

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

要求

要能够使用 App Store Connect API,Codemagic 需要 三个 东西

  1. 发行者 ID。
  2. 密钥 ID。
  3. 密钥文件或密钥内容。

创建 App Store Connect API 密钥

要生成密钥,您必须在 App Store Connect 中具有管理员权限。如果您没有该权限,请将相关人员指向此文章并遵循以下说明。

1 — 登录到 App Store 连接.

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。
点击“下载 API 密钥”来下载您的 API 私钥。下载链接仅在私钥尚未下载时才会出现。苹果不会保留私钥的副本。因此,您只能下载一次。

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

在 Codemagic 中添加 App Store Connect API 密钥

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

  2. 点击“添加密钥” 点击“添加密钥” button.

  3. 进入 App Store Connect API key name。 这是用于在应用设置中引用此密钥的人类可读名称。

  4. 进入 Issuer ID 和 Key ID context

  5. 值。 点击 将文件拖拽到上传之前下载的 App Store Connect API 密钥。

  6. Click 点击.

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

2. 创建证书和配置文件

证书

打开 XCode 并转到 设置 > 账户 > Apple ID > 团队 并选择您的团队。

Code 签名身份

点击 管理证书 > + 然后选择 苹果分发.

苹果分发

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

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

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

我的证书

然后您可以选择要下载的证书。 (根据证书的日期查找)

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

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

这将下载证书作为 .p12 文件。

配置文件

打开 Apple Developer 然后选择合适的团队。

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

创建一个新的配置文件

并选择 App Store Connect.

选择 App Store Connect

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

选择正确的应用程序

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

选择正确的证书

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

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

生成配置文件

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

下载配置文件

添加 Code 签名证书

Codemagic 允许您上传 code 签名证书作为包含证书和私钥的 PKCS#12 档案。当上传时,Codemagic 会要求您提供证书密码(如果证书被密码保护),以及一个唯一的 参考名称,它可以在 codemagic.yaml 配置中使用来获取特定的文件。

  • 上传证书
  • 生成新证书
  • 从开发者门户获取
  1. 打开您的Codemagic团队设置,前往 codemagic.yaml设置 > Code 签名身份.
  2. 打开 iOS证书 选项卡。
  3. 上传证书文件,点击 选择一个 .p12 或 .pem 文件 或将其拖拽到指示的框架中。
  4. 输入 证书密码 并选择一个 参考名称.
  5. 点击 添加证书

添加推送配置文件

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

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

3. 配置Codemagic

配置 Codemagic 密钥

你想知道这些值是从哪里来的吗? ENV 答案不再是秘密了 – 它来自你的项目的密钥。 🤦

4. 配置 Codemagic 工作流文件

创建一个名为 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

这个工作流应该在手动触发或每次 GitHub tagAutomatic build and release with __CAPGO_KEEP_0__ actions 自动化构建和发布与GitHub动作 first.

5. Configure Codemagic workflow file

每次您发送一个新的标签,一个测试版将在TestFlight中构建。

您的App不需要使用Ionic,只需使用Capacitor的基本版本即可,App可以使用旧的Cordova模块,但Capacitor的JS插件应该优先使用。

5. 触发工作流程

触发工作流程

推送新的提交到分支 main 或 development 在Capacitor live-update替代方案比较页面中,触发工作流程。

推送新的提交到分支

或

在Appflow比较/迁移营销复制中,触发工作流程。

在Capawesome比较页面中,触发工作流程。

在咨询服务页面中,触发工作流程。

首先选择您要构建的应用,然后点击 开始新建.

选择应用

然后选择您要构建的分支

选择分支

然后前往构建列表 开始新建.

构建列表

然后点击构建查看结果

构建结果

可以从本地机器部署

__CAPGO_KEEP_0__

是的,您可以,而且这很容易。

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

感谢。

本博客基于以下文章:

从自动CapacitorIOS构建中继续使用Codemagic

如果您正在使用 自动CapacitorIOS构建与Codemagic 来规划CI/CD自动化,连接它与 Capgo 自动化CI/CD 为Capgo产品工作流程在Capgo CI/CD中 Capgo原生构建 为Capgo产品工作流程在Capgo原生构建中 Capgo集成 为产品工作流程在Capgo集成中 为__CAPGO_KEEP_0__产品工作流程在__CAPGO_KEEP_0__集成中 CI/CD集成 GitHub Capgo 行动集成 为 GitHub 行为集集成的实现细节。

为 Capacitor 应用程序提供实时更新

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

来自马丁的人性化支持

立即开始

最新博客文章

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