SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

iOSエンジニアたちと振り返るWWDC

【WWDC2022直前!】WWDC2021で発表されたXcode CloudとSwiftUIについて


Xcode Cloudのワークフロー構成

 ワークフローはCI/CD上で実行できる一連の処理のまとまりの事です。Xcode Cloudのワークフローは次の4つの要素で構成されています。

1.Start Condition

 Start Conditionではワークフローを実行する条件を設定します。例えば、Pull Requestに変更があった時や、特定のGit Branchに変更がPushされた時などを条件として設定できます。

2.Environment

 ワークフローを実行するmacOSやXcodeのバージョンが設定できます。また、ビルドをクリーンビルドにするかインクリメンタルビルドにするか選択できます。インクリメンタルビルドがXcode Cloud上で行える事に非常に驚きました。これにより、ワークフローのビルド時間の短縮が期待できます。

3.Actions

 アクションはワークフロー内で実行される作業です。ビルド、静的解析、テスト、およびアーカイブを主に選択して追加できます。Xcode Cloudを使いアーカイブする際にはプロビジョニングプロファイルを設定する必要がなく(他の一般的なCI/CDサービスでは必要となる)、純正サービスならではのメリットを感じました。

4.Post-Actions

 Post-ActionsはActionsがすべて終わったあとに実行される処理です。例えば、ビルド結果をSlackに通知したり、TestFlightにアプリを配信したりすることができます。

 以上の説明した要素をカスタマイズし、さまざまなワークフローを作れます。例として、アプリを外部にリリースをするワークフローが説明されていました。このリリースワークフローでは次のような設定になっています。

 まず、リリースブランチに対してコードがPushされるとワークフローが起動します。その後、テストとアーカイブのActionが実行されます。最後にPost-ActionsとしてTestFlightへの配信が行われます。ワークフローの設計は他のCI/CDサービスと同様に行える印象を持ちました。

Xcode Cloudのより高度な機能

 Customize your advanced Xcode Cloud workflowsではより高度な機能について紹介されていました。

 Xcode Cloudにおいても他CI/CDサービスと同様にワークフロー中に実行される任意のShell scriptを設定する事ができます。この機能はCustom scriptsと呼ばれており、Post-clone、Pre-Xcodebuild、およびPost-Xcodebuildの3つの種類があります。

 これらの種類は実行されるタイミングの違いがあり、それぞれ名前となっているタイミングにて実行されます。

 Custom scriptを設定するためにはプロジェクトのルートディレクトリにci_scriptsという名前のディレクトリを作成し、その中にCustom script各種に対応する命名でスクリプトファイルを追加します。ワークフロー側を編集する必要はありません。

 ワークフロー中に発生したビルドのイベントに応じたWebhook endpointを設定できる機能もあります。イベントはワークフローが開始された時、ビルドが始まった時、およびワークフローが終了した時の3つあります。Webhookの設定はApp Store Connectから可能です。

 Webhook endpointを設定すると設定したendpointから下記の画像のようなJsonを受け取る事ができます。

次のページ
SwiftUI関連のアップデートによってさらにレイアウトが簡単に

この記事は参考になりましたか?

iOSエンジニアたちと振り返るWWDC連載記事一覧

もっと読む

この記事の著者

k-kohey(STORES 株式会社)(k-kohey)

 STORES 株式会社テクノロジー部門モバイル本部にて、STORES 決済 のiOSアプリ開発に従事。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/15776 2022/06/10 21:28

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー