メインコンテンツにスキップ
CI/CD

Capacitorの自動iOSビルド

CodemagicとCodemagicを使用した5分以内にIOS IonicアプリのCI/CDパイプラインの設定方法

記事のクレジット

マーティン・ドナディュー

ライター

バレリア

レビュアー

ジョーダン

編集者

Capacitorの自動iOSビルド

iOS用Codemagicによる継続的デリバリー

前提条件

チュートリアルを続ける前に…

  • iOS開発者プログラムの会員資格
  • 価格について読む…

重要な価格に関する注意

価格:Codemagicアクション

https://codemagic.io/pricing/

サービスは月に500時間まで無料 macOS M1の使用時間は、選択したマシンに応じて、500時間まで無料です。
このチュートリアルでは、 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 にサインインするために 2 つの要素認証または 2 つのステップの検証が必要です。この追加のセキュリティ機能により、Apple ID のアクセス権を保証するのに役立ちます。
From Apple Support

match について始めるには、既存の証明書を取り消す必要がありますが、心配はいりません。新しい証明書は直接取得できます。

要件

App Store Connect API を使用するには、Codemagic が 3 項目が必要です。

  1. 発行者 ID。
  2. キー ID。
  3. キー ファイルまたはキー コンテンツ。

App Store Connect API Keyの作成

App Store Connectのキーを生成するには、Adminの権限が必要です。権限がない場合は、この記事を参照し、以下の手順に従ってください。

1 — App Store Connectにログイン App Store Connect.

2 — Users and Accessを選択 App Store Connectのユーザー権限.

3 — __CAPGO_KEEP_0__ Keysタブを選択

App Store ConnectのAPI Keys

4 — Generate API KeyまたはAdd(+)ボタンをクリック

App Store ConnectのAPI キーを作成

App Store Connect API keys create

__CAPGO_KEEP_0__ App Manager アクセス権限、Apple Developer Programの役割権限について詳しく知りましょう。 ここ

App Store Connect API キーを作成する名前

6 — Generate をクリックします。

API キーのアクセスは、特定のアプリに制限できません。

新しいキーの名前、キーアイデンティファー、ダウンロードリンク、他に情報が表示されます。

App Store Connect キーをダウンロード

必要な情報をすべてここで取得しましょう: <1> Issue ID。
<2> Key ID。
<3> 「API キーをダウンロード」ボタンをクリックして、API プライベート キーをダウンロードしてください。ダウンロード リンクは、プライベート キーがまだダウンロードされていない場合にのみ表示されます。Apple はプライベート キーを保持していないため、プライベート キーを一度だけダウンロードできます。

🔴 Store your private key in a safe place. You should never share your keys, store keys in a code repository, or include keys in client-side code.

App Store Connect API キーを Codemagic に追加する

  1. Codemagic Team設定を開きます チーム統合を選択 チームを開きます code署名のIDを選択 code署名のIDを選択 証明書をアップロードします 証明書をアップロードします

  2. ボタンをクリックします キーを追加 キー名を入力します

  3. このキー名は、後でアプリケーション設定で参照するために使用されます App Store Connect API key nameボタンをクリックしてキーを追加します

  4. エントリーメイド Issuer IDKey ID 値を入力してください。

  5. クリックしてください。 またはアップロードするための.p8ファイルをドラッグしてください。 App Store ConnectのAPIキーをダウンロードしたものをアップロードしてください。

  6. クリックしてください。 保存.

App Store ConnectのAPIキーを使用してCodemagicを管理できるようになりました、素晴らしい!

2. 証明書とプロビジョニングプロファイルを作成する

証明書

XCodeを開いてください。 設定 > アカウント > Apple ID > チームを選択してください __CAPGO_KEEP_0__署名のID

Code signing identities

証明書を管理 > チーム + と選択 Apple Distribution.

Apple Distribution

次に、新しい証明書を作成できます。

次に、証明書をダウンロードするには、キーチェーンに移動し、証明書をファイルとしてダウンロードする必要があります。 .p12 証明書をダウンロードするには、キーチェーンに移動し、ログインキーチェーンに切り替え、次にタブ

ログイン キーチェーン マイ証明書 マイ証明書.

次に、ダウンロードしたい証明書を選択できます。 (証明書の日付で検索してください)

__CAPGO_KEEP_0__

そして右クリックして証明書を選択 __CAPGO_KEEP_0__.

__CAPGO_KEEP_0__ __CAPGO_KEEP_0__.

__CAPGO_KEEP_0__ .p12 __CAPGO_KEEP_0__

プロビジョニングプロファイル

__CAPGO_KEEP_0__ Apple Developer チームを選択してください

__CAPGO_KEEP_0__ +

新しいプロファイルを作成

そして選択 App Store Connect.

App Store Connectを選択

次に、正しいアプリを選択してください。注意してください。ワイルドカードを使用すると署名が失敗する可能性があります。

正しいアプリを選択

前に作成した正しい証明書を選択してください(有効期限の日付を確認してください。今日と同じ日と月でなければなりません)。そして Continue.

正しい証明書を選択

最後に、プロファイルの名前を入力し Generate.

プロファイルの名前はCodemagicでプロファイルを識別するために使用されます。

プロファイルを生成

プロファイルをダウンロードできます。 .mobileprovision ファイル。

プロファイルをダウンロード

Code の署名証明書を追加

Codemagicでは、codeの署名証明書をPKCS#12アーカイブとしてアップロードできます。これには、証明書と必要な秘密鍵が含まれます。アップロードするとき、Codemagicは証明書のパスワードを求めます(パスワードが設定されている場合)。また、ユニークな 参照名, これは、特定のファイルを取得するために使用できる codemagic.yaml 設定

  • 証明書をアップロード
  • 新しい証明書を生成
  • 開発者ポータルから取得
  1. Codemagicチームの設定を開き、 codemagic.yaml設定 > Code署名のID.
  2. 開く iOS証明書 タブ。
  3. 証明書ファイルをアップロードするには、次のボタンをクリックしてください。 または、指定された枠にドラッグしてください。 入力してください。
  4. 証明書のパスワード と選択してください。 フレーム 参照名.
  5. クリック 証明書の追加

プロビジョニング プロファイルの追加

Codemagicでは、Apple Developer Portalからプロファイルを取得することもできます。

プロファイルのタイプ、チーム、バンドルID、有効期限は、Codeの署名識別子に追加された各プロファイルで表示されます。また、Codemagicは、codeの署名証明書がCodeの署名識別子に存在する場合 (緑のチェックマークが表示される場合) または存在しない場合を知らせます。 証明書 3. Codemagicの設定

Codemagicのシークレットの設定

プロジェクトのシークレットから値が来ているのではないかと思ったことはありませんか? それは秘密ではありません – それはプロジェクトのシークレットからです。 🤦

Configure ENV Ever wonder

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 タグの後でトリガーされる必要があります。タグの自動化については、 Automatic build and release with __CAPGO_KEEP_0__ actionsを参照してください。 Automatic build and release with GitHub actions 次に、このワークフローは、NodeJS の依存関係を取得し、JavaScript アプリをインストールし、ビルドします。

各タグを送信すると、テストフライトでリリースが作成されます。

アプリは、Ionic を使用する必要はありません。ただし、__CAPGO_KEEP_0__ ベースは必須であり、古い Cordova モジュールを使用してもかまいませんが、__CAPGO_KEEP_1__ JS プラグインを使用することを推奨します。

Your App doesn’t need to use Ionic, only Capacitor base is mandatory, it can have old Cordova module, but Capacitor JS plugin should be preferred.

__CAPGO_KEEP_0__

ワークフローをトリガーする

新しいコミットをブランチにプッシュする main または development Capacitorライブアップデートの代替手段を比較するページ

Capacitorライブアップデートの代替手段を比較するページ

Capacitorライブアップデートの代替手段を比較するページ

Capacitorライブアップデートの代替手段を比較するページ

Capacitorライブアップデートの代替手段を比較するページ

ワークフローをトリガーする

コミットを開始しました 数分後、App Store Connect ダッシュボードでビルドが利用可能になります。.

テストフライトダッシュボード

次に、ビルドしたいブランチを選択してください。

ブランチを選択

そして 新しいビルドを開始.

次に、ビルドリストに移動してください。

ビルドリスト

そして、ビルド結果を確認するには、ビルドをクリックしてください。

ビルド結果

ローカルマシンからデプロイすることができます

はい、できます。とても簡単です。

Xcodeを使用してアプリをビルドおよび署名することができます。いつもと同じように。

感謝します

このブログは以下の記事に基づいています。

Codemagicと自動的にCapacitor iOSビルドから続きます。

Codemagicと自動的に__CAPGO_KEEP_0__ iOSビルドを使用している場合 自動的にCapacitor iOSビルドとCodemagicを使用してCI/CDの自動化を計画する __CAPGO_KEEP_0__ CI/CDと接続する Capgo CI/CDの製品ワークフロー Capgo Native Buildsの製品ワークフロー Capgo Native Builds Capgo CI/CD Capgo 連携 Capgo 連携の製品ワークフロー CI/CD 連携 __CAPGO_KEEP_0__ アクション連携 GitHub アクション連携の実装詳細 GitHub 連携の実装詳細

Live updates for Capacitor apps

ウェブ層のバグが生じた場合、Capgoを通じて修正を配信し、App Storeの承認待ちの日数を待たずに。ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路に従う。

マーティンによる人間のサポート

始めましょう

最新のブログ

Capgo gives you the best insights you need to create a truly professional mobile app.