ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Xcode Cloudについて
Xcode Cloudは、あらゆるAppleプラットフォームに対応した、Appとフレームワーク構築のためのAppleが提供するCI/CD(continuous integration and continuous delivery: 継続的インテグレーション/継続的デリバリー)サービスです。Xcode Cloudがどのようにして、チームの生産性と製品品質の両方を向上させることができるのかについてお伝えします。最初のビルドを開始して、ビルドレポートを使用して問題を修正して、チームと共同作業する方法を紹介します。
リソース
- About continuous integration and delivery with Xcode Cloud
- Configuring your first Xcode Cloud workflow
- Xcode Cloud
関連ビデオ
Tech Talks
WWDC22
WWDC21
-
ダウンロード
♪ ♪ こんにちはHollyです Continuous Integration Technologies チームの マネージャーです 後で同僚のGeoff McGinnisが 加わります 本日は全開発者向けに設計され Appleプラットフォーム用 Appやフレームワークを 構築する使い易い 継続的インテグレーションと 配信サービスであるXcode Cloudを 紹介できることを嬉しく思っています
このセッションでは 継続的インテグレーションの 概要とXcode Cloudについて 説明します 次にプロジェクトの設定 コード変更 Xcode Cloudの利用により チームで協力する方法を学びます
では始めましょう
継続的インテグレーションまたはCIは コード変更を定期的に 統合する手法です 問題を早期に発見し修正します この方法の採用により チームは協力しながら 高品質の製品を 作り上げることが出来ます
典型的なCIのワークフローは チームの誰かがコード変更を リポジトリに プッシュした時に実行される 一連の自動化された手順です ビルド テスト コード変更が チームの品質レベルを 満たすかどうかを 確認することができます CIの利用により変更の統合は 低リスクとなり安定したリリースを 見込めるという安心感を得れます CIのイメージを掴むために Appのライフサイクルを 考えてみましょう
開発者であれば様々なのソースからの フィードバックを 処理していることでしょう Xcodeでバグの修正 機能作成 チームからのプルリクエストの コードレビューフィードバックの受理 TestFlightから新バージョンの配布 テスタのフィードバックの統合など 様々です
高品質のAppやフレーム ワークを作成するには コードとフィードバックを 生産的に繰り返すチームの 能力が不可欠です そこでXcode Cloudの登場です Xcode CloudはCIのアイデアに基づき 構築されました Appleデベロッパツール間を接続し プロジェクトの構築 テスト 配布 フィードバック収集 迅速な反復などを行うための 完璧な開発パイプラインを お届けします ツアーに参加して どのような機能があるかを 見てみましょう
Xcodeでの開発に多くの時間 をかけていることと思います Xcode CloudはXcode内にあります ここではXcode Cloudの 動作を確認できます 複数のワークフロー設定下で ビルドが実行され問題を認識します チームが実施中の全作業を 確認することもできます
ワークフローはどのアクションを いつ実行するかを Xcode Cloudに指示します 簡単な演習を難なく終えた後 最初のワークフローを 立ち上げて実行し 戻って編集したり 使用事例をサポートする 新規ワークフローを 作成したりすることが出来ます
ワークフローを実行した 結果をビルドと言います Xcode Cloudはコード署名と 複数のオペレーティング システムバージョンおよび Xcodeリリースへのアクセスを許可する Appleの管理下のクラウドインフラで ビルドを実行します レポートナビゲーターの Cloud タブでAppをクリックすると 全ワークフローのステータスと 最新のビルドが サイドバーに表示されます
Appをクリックすると ビルドグループの概要も開き ワークフローだけでなく gitブランチごとに 開発チームが整理した 全ビルドが表示されます これにより1つのワークフローを 多くのブランチで使用しながら 結果を個別に表示できます
またリストをフィルターで絞り込んで 概要の上にあるMineフィルターを クリックするか レポートナビゲーターで 人物アイコンを選択して コード変更により開始された ビルドのみを表示することもできます
ビルドグループの概要の 1つ下のレベルは ワークフローを1回実行した ビルドレポートです 3 ここでコード変更に固有の結果を 詳しく調べることができます テストレポートやログを表示して 問題の原因となったコードに 直接ジャンプできます Geoffがビルドレポートの 詳細について後に説明します
先程お見せした機能は 全てXcodeだけでなく App Store Connectでも利用出来ます これにはビルドの開始と表示 ワークフローの管理 アーティファクトの表示と ダウンロード チーム内での結果の共有 通知設定の管理などが含まれます 既にTestFlightで作業している場合 Xcode CloudはApp StoreConnectの 隣のタブにあり 直ぐにアクセスできます
App Store Connectでは 個別の通知設定を セットアップすることもできます 私はビルドが失敗した場合の Slack通知を設定して コードのプッシュ後も作業を続行でき 修正要の場合は 直ぐにアラートを受信出来る設定を 気に入っています チーム全員がそれぞれに最適な通知を 設定することができます
外出中も Xcodeで非設定のプロジェクトビルドを 可視化したい時も プロジェクトのコードに従事して いないチームメンバーであっても App Store ConnectのXcode Cloudは フル機能のWeb体験を お届けしています Xcode Cloudは開発プロセスと チームでの 協働のために設計しましたが プライバシーの保護も 中核に設計しています
貴方のソースコードが プロジェクトの中心です そのためXcode Cloudの 全データが確実に 保護されるよう設計されています
ビルド環境は一時的なものです ワークロードは完全分離されており ビルド間では 環境が壊された後 最初から作り直されます ソースコードは保存しません Xcode Cloudでは一時的に ビルド環境内でのみ コードがフェッチされます ビルドデータは静止時に 暗号化され専用の Cloud Kitデータベースに保存されます データの管理者は貴方です データはいつでも削除でき システムから完全に 削除されます
紹介が済んだのでGeoffに代って Xcode Cloudのセットアップ手順を 説明します
Xcode Cloudの演習を 始めてみましょう Xcodeと強力に一体化しているので ほんの数ステップで始めることが できます
Productメニューの Xcode Cloudセクションに アクセスしワークフローの作成を 選択します
ローカルプロジェクトで検出された オプションから 演習するAppを選択します 今日はチームで開発中の”Fruta”という 新規のスムージー注文Appを選択します このAppはiOSとmacOSの 両方をサポートしています 両方のプラットフォームを 同時に演習します
このAppは自動的に 作成されたデフォルトの ワークフローから始まります Xcode Cloudは ローカルプロジェクトを精査して 初期ワークフロー設定を チームの設定と 一致させるよう調整します
ワークフローは 開始条件 環境 実行する一連のアクション またデプロイや通知などの ポストアクションから 成り立っています
"Start Condotopn"として Xcode Cloudのメインブランチを選択し "Environment"に最新版Xcodeを "Actions"にiOSとmacOSの両方の アーカイブを選択しています
設定変更のオプションがありますが これで良さそうなので このまま続けます ワークフローの編集について 詳しくは会議後半にある 「Xcode Cloudのワークフローの詳細」 の回を ご覧下さい
Xcode Cloudにソースコードへの アクセスを許可します これは主要リポジトリ サブモジュール 個人用 Swiftパッケージなど プロジェクトの作成に必要な 全ソースリポジトリを対象とする 1回限りの操作です パブリックにアクセス可能な リポジトリの場合 追加承認は不要です
Xcode Cloudによりプロジェクト内に プライベートリポジトリが 2つ検出されました ソースがホストされているGitHubに 明確にアクセスを許可します アクセスの許可をクリックすると App Store Connectに移動し 詳細な手順が表示されます
このプロセスは ソースプロバイダーによって 変わります いかなる理由でもいつでも アクセスの取り消しが可能です
Xcode Cloudへの ソースコードアクセス許可は Web上で完結し アシスタントが プロセスを示してくれます
まずApple IDをソースアカウントに 関連付けます これにより個人設定が Xcode Cloudに反映されます この手順には プロバイダーのネイティブ認証フローと Xcode Cloudの安全な暗号化法を 利用しているので コードと個人情報は常に保護されます
Xcode Cloud AppをGitHub組織に インストールして 選択したリポジトリに アクセスできるようにします
素晴らしいです! 完了すると GitHub アカウントが設定されます ローカルでのXcodeの演習を 終了しましょう
リポジトリの準備が 完了したので続けます
最後にXcode Cloudから AppとバンドルIDの App Store Connectへの 登録を提案してきます Appは作成済みなので ここで詳細を確認します 全ていい感じです
Xcode Cloud用にAppが構成されたので 演習プロセスを終了すると 最初のビルドが始まります
最初のビルドが完成したようです 詳しい結果を見てみましょう
ビルドグループのOverviewで アクティブビルドと完了ビルドを 確認できます 最初のエントリをクリックすると ビルドの概要ページが開きます
概要には期間や環境構成などの ビルドの詳細が示され 下のセクションには 全アクションとポストアクションの ステータスが示されます
右上には "Rebuild..." ボタンがあり ローカル環境で変更を確認することが できます
Overviewから離れて”Archive-iOS”の アクションノードを展開すると その内容が表示されます
生成されたLogsとArtifacetsを 確認することができます
Logsページでは アクションタスクが全て整理され 上部には注意が必要な領域を表示する フィルターも付いています
Artifactsページでビルドに生成された バイナリ ログファイル その他の Artifactsへのアクセスができます
これによりチーム全員にとって XcodeでのCIコンテンツへのアクセスが 非常に便利になります
次にアクションの概要から Macアーカイブアクションの 失敗の原因を調べましょう
ログビュー同様 効率的な トリアージのためにタイプで フィルタリングします
以前Mac Appによる最初の CIビルドで見逃していた インポートの問題が検出されました Xcodeで結果をトリアージしているので 問題内のジャンプボタンを使用して 修正が必要なコードに 直接移動できます
コードを簡単に変更して片付けます
CIビルドを順調に スタートさせたいので進んで コミットし リモートリポジトリにプッシュします
変更をプッシュした直後に Xcode Cloudが 新しいビルドを開始しました
変更は全て有効なまま 進めることができます
速い進捗状況に驚いています AppleのCloudインフラ上での CIビルドの実行により これまで以上に効率的に チームでプロジェクトを 進めることができます Hollyに再び参加してもらいましょう
Frutaプロジェクト用に Xcode Cloudを セットアップしてくれてどうも有り難う 同じチームメンバー内では Geoffをはじめとする チームが取り組むワークフローと ビルドを全て確認することが できます
クラウドタブのレポート ナビゲーターから プロジェクト名をクリック するとGeoffが作成した デフォルトのワークフローが チーム内で共有され 確認することができます
Geoffがインポートエラーを 修正してから開始した ビルド2は正常に完了しています 合格ビルドができたので ワークフローを編集して 機能を確認しFrutaのカバレッジの 追加のために更に何か 改善できるかどうかを 確認してみましょう ワークフロー名を右クリックして ワークフローの編集を選択します
ワークフローに分かり易い名前を 付けてみましょう リリースに使う複数のブランチを 構築してテストするので このワークフローを ”Release”と名付けてみましょう
開始条件を編集してみましょう サイドバーから"Start Condition"を 選択して構成を表示します
開始条件はワークフロー実行のための 必要事項の定義です デフォルトではコード変更が メインブランチにプッシュされた時に 開始するように設定されています
私のチームもリリースブランチを 使用しているので 先に進んでここにも 追加してみましょう Csutom Branchesセクションの プラスボタンをクリックして テーブルの行にブランチ名を 入力するだけです
開始条件として良い感じです アクションに移りましょう
デフォルトのワークフローでは 実行中プロジェクトの 全プラットフォームの アーカイブアクションが 自動的に作成されます これは構築に最適な基盤ですが カバレッジの追加のため 幾つかテストを追加したいと思います
サイドバーのアクション ヘッダーの右側にある プラスボタンをクリックして Test アクションタイプを選択します
テストアクションでは ここでは iOSをプラットフォームとして選択し Fruta iOSをスキームとして選択します
必要事項に未入力の項目があるため サイドバーの新規テストアクションの 横には赤いXが表示されています 構成が必要な最後の設定は テストを実行するデバイスの追加です 宛先テーブルの下のプラス ボタンをクリックすると 推奨のiPhoneシミュレーターが 自動的に追加されます
もう一度クリックすると 推奨されるiPadが追加されます
別のデバイスシミュレーターに 変更することも可能です 最新のiPhoneを選択して iPhone12で上手く機能することを 確認しましょう
追加した全宛先にはOSの 最新バージョンが 自動設定されていることが分かります
サイドバーでワークフローの 再確認ができますが 全て良さそうなので 右下のSaveボタンをクリックして 変更を保存します
ワークフローに変更を加えたので コードを変更しなくても ビルドを開始することを 確認したいと思います レポートナビゲータから ワークフローを右クリックし Start Buildを選択して 手動で行います
次に実行するブランチを選択します ブランチをワークフローに 追加したので”release/v1” で試してみましょう
ここからビルドの開始を クリックして 開始します 素晴らしいです 新しい ビルドが実行されています ビルドグループの概要には release/v1ブランチの 新セクションがあり 開始したばかりの新しい ビルドであるBuild 3が 実行中のステータスに 表示されています これが完了するとブランチが どのように機能しているかが わかります リリースワークフローに再び 追加するか新規ワークフロー を作成してチームの動作を サポートできます
Xcode CloudによりAppに継続的かつ 統合的手法を取り入れることが 非常に簡単になりました 数回クリックするだけでGeoffは設定と ワークフローで見つかった 問題を修正しました 私は彼の処理を全て簡単に確認し ワークフローを更に強固に することができました 高品質のAppやフレーム ワークを作成するには コードとフィードバックを 生産的に繰り返すチームの 能力が不可欠です Xcode Cloudを使用するとCIを簡単に 設定できます 全く新しい方法であっても プロセスを滑らかにする場合でも 生産性と快適さが増し ユーザーが製品を通して 素晴らしい体験を することを確信しています
Xcode Cloudと 継続的インテグレーションへの 理解が深まることを願っています カナダバンクーバーのチームと Geoffと私をからお礼をお伝えします 残りのWWDC2021もお楽しみ下さい [明るい音楽]
-
-
11:04 - Import Issue
import SwiftUI #if !os(macOS) import UIKit #endif
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。