TestFlight にビルドが来ない:Xcode Cloud の月25時間を使い切っていた(最初の診断は誤りだった)
トレカダッシュ 開発の記録 / 2026年10月
iOS アプリ「トレカダッシュ」の開発で、「TestFlight に新しいビルドが来ない」という不具合が起きました。最初に出した原因は間違っていました。どこで間違えて、どう気づいて、本当の原因は何だったのか。HANDOFF(開発の引き継ぎ記録)とコミットに残っている数字で書きます。
このサイトには、トレカダッシュの作品ページはまだありません。ここに書くのは、開発の記録です。
最初の診断:「[ci skip] が原因」
9月2日、「9/1 以降のビルドがない」という報告がありました。最初に出した診断は、コミットメッセージに付けていた [ci skip] が、ビルドを止めているというものです。文書だけの変更で、Xcode Cloud の無料枠(月25時間)を使わないように付けていた印でした。診断と一緒に、「[ci skip] を使うな」という規則も作りました。
時系列が合わなかった
App Store Connect の Xcode Cloud を見ると、こう出ていました。
利用上限に達しました。上限は更新日の9月8日にリセットされます。
過去30日の使用状況は、493ビルド・28時間14分。無料枠は月25時間なので、使い切っていました。
最初の診断が違うと分かった決め手は、時系列です。[ci skip] を付けたコミットは、9月2日の3件だけ。ビルドが止まったのは9月1日です。原因が結果より後に起きているので、原因になりえません。しかも、作った規則は、枠が足りない状況では逆効果でした。
なぜ493回も回ったのか
ワークフローの開始条件が「任意のファイルが変更された場合」でした。過去30日のコミットを数えると、こうです。
| 過去30日 | 件数 |
|---|---|
| 全コミット | 1,146 |
| うち、iOS アプリに触ったもの | 219(19%) |
| Xcode Cloud が回したビルド | 493(1回あたり平均3.4分) |
つまり、8割は、サーバー側のコードや文書しか変わっていないのに、iOS アプリをまるごとビルドしていたことになります。さらに「クリーンビルド」にチェックが入っていて、毎回キャッシュを使わず、一回が最大限に長くなる設定でした。
直し方は、印ではなく設定
- 開始条件を、ファイルとフォルダのカスタムルールにして、iOS アプリのフォルダと Xcode のプロジェクトだけに絞る。
- クリーンビルドのチェックを外す。
HANDOFF の見込みでは、これでビルドは 493回から約94回、時間は28時間から月に約5.4時間になります。これは見込みの計算で、設定を直したあとの実測ではありません。
分かったこと
その原因で説明がつくか、時系列で確かめてから決める。
最初の診断は、「それらしい」原因を見つけたところで止まっていました。結果より後に起きたことは、原因になれません。この確認は、診断を出す前なら一分で済みます。HANDOFF の §183 には、「この診断は間違っていた」という注意書きを付けて、記録として残してあります。
この記事の数字は、HANDOFF とコミット(2026年9月2日)の記録から取りました。
この話に出てくるもの
- 「減るはず」が、二度外れた — 同じアプリの、数え直した記録
- 「山は89%で落ち着く」は誤りだった — 自分の測定が間違っていた、別の記録
ほかの記録
- 「減るはず」が、二度外れた:AIへの問い合わせを削る話 — トレカ情報アプリで、AI への問い合わせを減らそうとした記録。45%減るはずが4.5%、配備したのに束ねが0回。数え直して見つかったことを、コミットの数字で書いた。
- トレカ抽選アプリを比較:トレカダッシュ・トレゲト・NowPokeca・Pokeka Tracker・トレカの地図のメリットとデメリット — トレカの抽選・予約・再販を追うアプリ・サイトを、ジャンル数・通知・地図・料金で比較。作者(トレカダッシュの開発者)による比較で、トレカダッシュの弱いところも書いた。
- まとめサイトの巡回は、一覧の 1 ページ目しか見ていなかった:トレカの記事は 2〜4 ページ目にあり、本文も先頭 6,000 文字で切れていた — 入荷情報のまとめサイトの巡回は、一覧の 1 ページ目(ゲーム機中心)しか読まず、ポケカやガンダムは後ろのページにあった。本文も先頭 6,000 文字しか AI に渡さず、後半の店が落ちていた。12 ページまで辿り、重なりつきで全文を読む形に直した。
コメント
感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。
押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。