GO TechTalk #18 『GO』のiOS開発で、Concurrency、Xcode Cloud、新DIを試してみた で発表した資料です。
■ YouTube https://www.youtube.com/live/XDMBK-loe4o?feature=share&t=2083
■ connpass https://jtx.connpass.com/event/277446/
© GO Inc.Xcode Cloud の導入前に考慮すべき4つのポイントYosuke Imairi
View Slide
2© GO Inc.❏ タクシーアプリ『GO』の iOS アプリ開発❏ アーキテクチャの選定・導入❏ アプリ全体の設計、新機能開発❏ CI 環境の構築・整備、自動化の促進❏ チームビルディング自己紹介GO株式会社ユーザシステムG / 今入 庸介@kamekiti
3© GO Inc.Xcode Cloud の導入検証をしたiOSアプリ開発でよく使われている CI からXcode Cloud に乗り換えることはできるのか
4© GO Inc.思ってたより良い!Xcode Cloud を使ってみた感想👍
5© GO Inc.Xcode Cloud の良い点 ①❏ Apple が管理しているサービスとの親和性が高い❏ 証明書まわりの環境構築および運用コストがゼロ❏ TestFlight への配信もコード要らず❏ 比較的安価だと思われる❏ プロジェクト構成やビルド時間などに依存するが、比較的安価❏ Bitrise の 1/10 などの声も見かける
6© GO Inc.Xcode Cloud の良い点 ②❏ 日本語に対応している❏ App Store Connect と同品質のローカライズ❏ Xcode に組み込まれている❏ Xcode 内でセットアップやジョブの確認ができる❏ トリガーに細かな条件が設定可能❏ 特定のファイル差分は無視する etc…
7© GO Inc.Xcode Cloud の導入前に考慮すべきポイント導入前に検討しておきたいことやチームメンバーと議論が必要になりそうな点もあった🤔
8© GO Inc.Xcode Cloud の導入前に考慮すべきポイント ①❏ あくまで Xcode の Cloud 版❏ Workflow 内に以下のいずれかのステップを組み込む必要がある❏ Build, Test, Analyze, Archive❏ 任意のスクリプトを実行するだけの Workflow は作成できないXcode の機能を利用しなければならない
9© GO Inc.❏ git clone 後に特定のディレクトリ内のスクリプトが実行される❏ git clone 前に任意のスクリプトは実行できないXcode Cloud の導入前に考慮すべきポイント ②任意のスクリプトの実行タイミングが限定的
10© GO Inc.キャッシュ機構が不明瞭Xcode Cloud の導入前に考慮すべきポイント ③❏ Derived Data 配下はキャッシュされる❏ SPM でライブラリを導入した場合はキャッシュされる❏ Homebrew, Gem, Mint などのインストールは毎回行う必要があった❏ 比較的安価だが、キャッシュが使えないことによる実行時間増が懸念
11© GO Inc.Xcode Cloud の導入前に考慮すべきポイント ④❏ バージョン管理機構がないので最新状態しか確認できない❏ 誰がいつ何を編集したのかを把握できない❏ 複数人開発ではチーム内で議論しておきたい❏ App Store Connect の役割で編集権限の制御は可能❏ 過去の状態に戻すこともできないWorkflow の編集履歴や差分は確認できない
12© GO Inc.❏ Xcode Cloud からプライベートリポジトリへのアクセス方法(公式)❏ Xcode Cloud 17.58.192.0/18, and 57.103.0.0/22 からのアクセスを許可❏ GO では独自ツールを使ってプライベートリポジトリへのアクセスを許可❏ git clone 前に実行したいが現状の仕様だと不可能❏ 導入検証時は期間限定で公式の手法でアクセスを許可してもらったタクシーアプリ『GO』開発に Xcode Cloud を導入するか現状の仕様だと導入ができないことが分かった
13© GO Inc.まとめ❏ Xcode Cloud ならではの良さはたくさんある❏ 証明書まわりの環境構築や運用コストがゼロ❏ 比較的安価に利用できそう❏ チームやプロジェクトの環境に適しているかどうかの見極めは必要❏ あくまで Xcode の Cloud 版である❏ 他の CI サービスと併用して導入するのが良さそう❏ Xcode Cloud でできないことを他の CI サービスで補完
文章・画像等の内容の無断転載及び複製等の行為はご遠慮ください。© GO Inc.