TestFlight にビルドが来ない:Xcode Cloud の月25時間を使い切っていた(最初の診断は誤りだった)

English version

トレカダッシュ 開発の記録 / 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 アプリをまるごとビルドしていたことになります。さらに「クリーンビルド」にチェックが入っていて、毎回キャッシュを使わず、一回が最大限に長くなる設定でした。

直し方は、印ではなく設定

  1. 開始条件を、ファイルとフォルダのカスタムルールにして、iOS アプリのフォルダと Xcode のプロジェクトだけに絞る。
  2. クリーンビルドのチェックを外す。

HANDOFF の見込みでは、これでビルドは 493回から約94回、時間は28時間から月に約5.4時間になります。これは見込みの計算で、設定を直したあとの実測ではありません。

分かったこと

その原因で説明がつくか、時系列で確かめてから決める。

最初の診断は、「それらしい」原因を見つけたところで止まっていました。結果より後に起きたことは、原因になれません。この確認は、診断を出す前なら一分で済みます。HANDOFF の §183 には、「この診断は間違っていた」という注意書きを付けて、記録として残してあります。

この記事の数字は、HANDOFF とコミット(2026年9月2日)の記録から取りました。

この話に出てくるもの

ほかの記録

コメント

感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。

押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。