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

> 「[ci skip] が原因」という最初の診断は、時系列が合わず誤りだった。Xcode Cloud の無料枠（月25時間）を使い切った本当の原因と、開始条件を絞る直し方の記録。

- URL: https://koshinstudio.com/notes/torecadash-ci/
- 公開: 2026-10-08
- 書いた人: Koshin（https://koshinstudio.com/about/）
- サイト: Koshin Studio

  English version (https://koshinstudio.com/en/notes/torecadash-ci/)

トレカダッシュ 開発の記録 ／ 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日）の記録から取りました。

  この話に出てくるもの

- 「減るはず」が、二度外れた (https://koshinstudio.com/notes/torecadash-ai/) — 同じアプリの、数え直した記録

- 「山は89%で落ち着く」は誤りだった (https://koshinstudio.com/notes/sushi-measure/) — 自分の測定が間違っていた、別の記録
