Codemagicを使用したiOSの継続的デリバリー
前提条件
このチュートリアルを続ける前に…
- iOS開発者プログラムの会員資格
- 読むことを望む…
価格についての重要なこと

サービスは ‘無料’ 月に 500 分までの macOS M1 分钟、選択したマシンに依存します。
ここでは、 macOS M1 マシンを使用します。スクリーンショットでは、その価格と制限を確認できます (価格はこのチュートリアルの作成時点のものであり、将来の変更が可能です)。
🔴 要件と価格については警告された後、続ける場合はどうですか?
📣 この記事では、iTunes Connectでアプリを作成し、Apple エコシステムの証明書を持っていることを前提としています。Codemagic で設定するので、すべてが準備されています。
では、始めましょう!
この記事で従う手順
- Codemagic と App Store Connect API を使用する
- 必要なもの
- App Store Connect API キーを作成する
- App Store Connect API キーを使用する
- Fastlane ファイルをコピーする
- Codemagic を構成する
1. Codemagic と App Store Connect API を使用する
2021 年 2 月以降、すべてのユーザーが App Store Connect にサインインするには、2 つの要素認証または 2 つのステップの検証が必要になります。この追加のセキュリティ層は、Apple ID のセキュリティを確保するために役立ちます。
App Store Connect __CAPGO_KEEP_0__ を使用するには、Codemagic に必要なのは Apple Support
match について始めるには、既存の証明書を取り消す必要があります。ただし、心配する必要はありません。新しい証明書は直接取得できます。
要件
App Store Connect API を使用するには、Codemagic に必要なのは 3 つです Starting February 2021, two-factor authentication or two-step verification is required for all users to sign in to App Store Connect. This extra layer of security for your Apple ID helps ensure that you’re the only person who can access your account. ものたち。
- 発行者ID。
- キーID。
- キーファイルまたはキー内容。
App Store ConnectのAPIキーを作成する
App Store ConnectのAdmin権限が必要です。権限がない場合は、この記事を指示し、以下の手順に従ってください。
1 — App Store Connectにログインする App Store Connect.
2 — "ユーザーとアクセス"を選択する App Store Connectユーザーアクセス.

3 — Select the API Keys tab.

4 — API Keyの生成または(+)ボタンをクリックしてください。

5 — キーの名前を入力し、権限のレベルを選択してください。 App Manager 権限の詳細については、Apple Developer Programのロールパーミッションを参照してください。 App Store Connect __CAPGO_KEEP_0__ keysの作成名

__CAPGO_KEEP_0__キーは特定のアプリに権限を制限することはできません。
An API key’s access cannot be limited to specific apps.
App Store Connectでキーをダウンロード

__CAPGO_KEEP_0__
<2> キーID。
<3> 「API キーをダウンロードする」ボタンをクリックして、API プライベート キーをダウンロードしてください。ダウンロード リンクは、プライベート キーがまだダウンロードされていない場合にのみ表示されます。Apple はプライベート キーを保管していないため、ダウンロードすることができます。
🔴 プライベート キーを安全な場所に保管してください。キーを共有しないでください、キーを code リポジトリに保管しないでください、またはクライアントサイドの code にキーを含めないでください。
App Store Connect API キーを Codemagic に追加する
-
Codemagic チーム設定を開いてください
code 署名の身元を選択してください
証明書をアップロードしてください

-
__CAPGO_KEEP_0__ をクリックしてください キーを追加 ボタン。
-
キーを入力してください。
App Store Connect API key nameこのキーは、後でアプリケーション設定でキーを参照するために使用される人間が読める名前です。 -
キーを入力してください。
Issuer IDとKey ID値を入力してください。 -
このボタンをクリックしてください。 App Store Connectの__CAPGO_KEEP_0__キーをダウンロードした場合は、.p8ファイルを選択してください。 or drag the file to upload the App Store Connect API key downloaded earlier.
-
このボタンをクリックしてください。 保存.
今、CodemagicをApp Store ConnectのAPIキーで管理できます、素晴らしい!
2. 証明書とプロビジョニング プロファイルを作成する
証明書
XCodeを開き、 設定 > アカウント > Apple ID > チーム と自分のチームを選択する。

クリックしてください 証明書を管理 > + を選択してください Apple Distribution.

すると、新しい証明書を作成できます。
すると、証明書をファイルとしてダウンロードするには、キーチェーンに移動し、 .p12 ログインに切り替えてください
キーチェーンに移動してください と切り替えてください 鍵付きのタブと次にタブ 私の証明書.

次に、ダウンロードしたい証明書を選択できます (証明書の日付で検索してください)
そして、証明書の右クリックして エクスポート.
ファイル形式を選択してください パーソナル情報交換(.p12).
証明書をファイルとしてダウンロードします。 .p12 プロビジョニングプロファイル
開く
Open Apple Developer と、適切なチームを選択してください。
新しいプロファイルを作成するには、 +

と選択 App Store Connect.

適切なアプリを選択してください。ワイルドカードを使用すると署名が失敗する可能性があるため、注意してください。

前に作成した適切な証明書を選択し、有効期限の日付を確認して、 続行.

最後に、プロファイルの名前を入力し、 生成.
プロファイルの名前は、Codemagicでプロファイルを識別するために使用されます。

プロファイルをファイルとしてダウンロードすることができます。 .mobileprovision プロファイルをダウンロード

Codemagicでは、Code署名証明書をPKCS#12アーカイブとしてアップロードすることができます。アーカイブには、証明書と必要な秘密鍵が含まれます。アップロードする際、証明書がパスワード保護されている場合、証明書のパスワードと一意の
Codemagic lets you upload code signing certificates as PKCS#12 archives containing both the certificate and the private key which is needed to use it. When uploading, Codemagic will ask you to provide the certificate password (if the certificate is password-protected) along with a unique を入力する必要があります。これは、設定で特定のファイルを取得するために使用できます。 codemagic.yaml configuration
- 証明書をアップロード
- 新しい証明書を生成
- 開発者ポータルから取得
- Codemagic Teamの設定を開き、 codemagic.yamlの設定 > Codeの署名識別子.
- を開く iOS証明書 タブを開く。
- 証明書ファイルをアップロードするには、 ファイルを選択するには.p12または.pemファイルをクリックしてください または、指定された枠にドラッグしてください。
- Enter the 証明書パスワード と選択する 参照名.
- Click 証明書を追加
プロビジョニングプロファイルの追加
Codemagicは、Codemagicアプリケーションに使用するためにプロビジョニングプロファイルをアップロードすることを許可するか、Apple Developer Portalからプロファイルを取得することを許可します。
プロファイルのタイプ、チーム、バンドルID、有効期限は、Code署名のIDに追加された各プロファイルで表示されます。また、Codemagicは、code署名証明書がCode署名のIDに存在する場合(緑のチェックマークが「証明書」フィールド内に表示される場合)または存在しない場合を知らせます。 証明書 フィールド
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
This workflow should be triggered manually or after each GitHub このワークフローは、手動でトリガーするか、または各__CAPGO_KEEP_0__タグ Automatic build and release with GitHub actions 自動化したい場合は、タグの自動化については「Automatic build and release with __CAPGO_KEEP_0__ actions」を参照してください。
Node.js の依存関係を取得し、インストールし、JavaScript アプリをビルドします。
各タグの送信ごとに、テストフライトでリリースが作成されます。
アプリは Ionic を使用する必要はありませんが、Capacitor のベースは必須です。古い Cordova モジュールを使用してもかまいませんが、Capacitor の JavaScript プラグインを使用することをお勧めします。
5. ワークフローをトリガーする
ワークフローをトリガーする
ブランチに新しいコミットをプッシュする main または development ワークフローをトリガーするには

数分後、App Store Connect ダッシュボードでビルドが利用可能になります。

手動で開始する
__CAPGO_KEEP_0__を手動で開始できます。
まず、作成したいアプリを選択し、 __CAPGO_KEEP_1__.

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

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

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

ローカルマシンからデプロイすることができます
はい、できます。とても簡単です。
Xcodeを使用してアプリをビルドして署名することができます。いつもと同じです。
感謝します
このブログは以下の記事に基づいています。
Keep going from Automatic Capacitor IOS build with Codemagic
CI/CDの自動化を計画する場合に使用している場合 Automatic Capacitor IOS build with Codemagic CI/CDの自動化を計画する場合に接続するもの Capgo CI/CD Capgoの製品ワークフロー Capgo Native Builds Capgoのネイティブビルドワークフロー Capgo Integrations Capgoの統合ワークフロー CI/CD Integration CI/CD統合の実装詳細 GitHub Actions Integration GitHub Actions統合の実装詳細