Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Xcode Cloud事例紹介
Search
Yuya Hirayama
April 26, 2024
1
520
Xcode Cloud事例紹介
potatotips #87 2024.04.26
Yuya Hirayama
April 26, 2024
Tweet
Share
More Decks by Yuya Hirayama
See All by Yuya Hirayama
Claudeをクラウド型エージェントのように使う
hiragram
0
190
わいわいClaude Code アイスブレイクLT iOSDC2025 Day2 アンカンファレンス
hiragram
0
150
LLMエージェント時代に適応した開発フロー
hiragram
2
750
Deep Dive into ~/.claude/projects
hiragram
14
23k
iOSアプリ開発もLLMで自動運転する
hiragram
7
2.8k
iOSアプリの定期リリースとその自動化@potatotips#90
hiragram
1
470
iOSアプリを安全にローカライズする
hiragram
1
480
iPhoneXのTrueDepthカメラでVRMを動かす
hiragram
2
14k
生きた仕様書としてのUIカタログアプリ運用 構想編
hiragram
1
1.5k
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
510
KATA
mclloyd
PRO
33
15k
Designing Experiences People Love
moore
143
24k
Being A Developer After 40
akosma
91
590k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Music & Morning Musume
bryan
46
7k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
Xcode Cloudをチームに導入して 何がどうなったか 2024/04/26 potatotips #87 @hiragram
- @hiragram - iOSアプリエンジニア - 2024/02~ akippa株式会社 🆕 - 駐車場シェアリングサービスのアプリ開発
- 唯一の正社員iOS開発者 - あと1日で試用期間が終わる 自己紹介
社内向けビルドのTestFlightへの配信を自動化
社内向けビルドのTestFlightへの配信を自動化(1) - 従来は、開発者が手元でビルドしてDeployGateに配信していた。 - 事前にテスターの端末 IDを取得してプロファイルに追加しておく必要があり、新しいメンバーが入っ たときに作業が生じる - 手オペなので、ブランチ間違いとか未コミットの変更が混じるとか、そういうのを防ぎにくい /気づきに
くい - Xcode CloudはTestFlightとの連携が素晴らしく、post actionとして追加するだけで 簡単にテスターにアプリを配布できる - 以下のタイミングでXcode Cloudから社内向けビルドをTestFlightに配信するように した。 - mainブランチが更新されたとき (Branch changesトリガー) - featureブランチで開発者が手動で社内配信ジョブを実行したとき
社内向けビルドのTestFlightへの配信を自動化(2) - Xcode CloudからTestFlightに配信すると、ブランチ 名やタグ名でビルドグループが作られる。 - 複数のプロジェクトが並行して進む状況で、テスト対象のビル ドを見つけるのが簡単になっている。 - mainブランチにマージされる前に関係者が動作確認をする手
間が格段に減った
ストア申請用ビルドの自動化
ストア申請用ビルドの自動化 - 従来は、開発者の手元でリリース版をアーカイブしてAppStoreConnectにアップ ロードしていた。 - 手オペで間違いが起こらないよう、別のエンジニアやマネージャーが集まって画面共有しながらヨシ していた。 - v1.2.3-RC というフォーマットでタグを打つと、リリース版のジョブが起動して
AppStoreConnectのアップロードまで自動で済むようにした。 - RCはRelease Candidate。なんとなくXcodeに倣った。 - 審査落ちたら修正して v1.2.3-RC2, RC3, … と新しいタグが打たれていく。
これによってGitHub上でリリースを整理できる - タグ起点による申請フローを整備したことで、申請ごとに必ずタグが打たれることが 担保された。 - 従来はリリースしたあとに開発者が手でタグを打っていて、打ち間違えたり忘れたりすることが多 かった。 - リポジトリのRelease機能で、1つ前のバージョンのタグとの差分を自動で計算して リリースノートを生成する事ができる。
None
None
None
開発版を別アプリとしてインストールできるようにした
開発版を別アプリとしてインストールできるようにした(1) - 従来はすべてのビルドがストア版と同じバンドルIDで配信されており、常に上書きイ ンストールする形であった。 - 社内向けビルドのバンドルIDを変更し、ストア版とは別アプリという扱いにすること で、2つを同時にインストールして、動作を比べるような検証をしやすくした。
- ちなみに、従来は各環境(dev/stg/prod/…)ごとに configurationが分かれていて、アプリが変更されるたびにそ れぞれの環境向けのビルドをDeployGateに乗せていた。 - 接続先を切り替えられるデバッグ用メニューをアプリ内に設 け、社内向けビルドは全環境対応の1つで済むようにした。 開発版を別アプリとしてインストールできるようにした(2)
- ただし、バンドルIDがストア版と異なるため以下の制約がある - ストア版のバンドルIDしか想定していない現状の APIサーバーではプッシュ通知が届かない - アプリ内課金ができない - apple-app-site-associationに対応が必要 -
現状、これらに関わる開発要件はそこまで多くないため、必要に応じてストア版と同 じIDでデバッグメニューを持ったビルドの配信ジョブを手動でスタートする運用をし ている。 開発版を別アプリとしてインストールできるようにした(3)
おわり - akippaのiOS版のCIをXcode Cloud上に構築した。 - TestFlightとの組み合わせが素晴らしく、プロダクトに関わる多くの人の手間を削減 した。 - ついでに、CocoaPods/Carthageを廃止してSwiftPMに一本化できた。 -
Xcode Cloud上でスナップショットテストも実行できたらいいなと思う。Apple Silicon インスタンスとか出ないかな。