スタック更新ポリシー
Xcode スタックの更新
必要な Xcode バージョンに基づいて macOS スタックを選択できます。内部的には、1 つの VM イメージに複数の Xcode バージョンがインストールされており、要求された Xcode バージョンはワークフローが開始する前に実行時にアクティブ化されます。
原則として、同じメジャー バージョンの Xcode マイナー バージョンは同じ VM イメージを共有しますが、互換性の問題やその他の考慮事項に基づいて例外が発生する可能性があります。
バージョン管理
バージョンについて話すときは、 セムバー さまざまなツールがバージョンをどのように定義するかに関係なく、用語は同じです。
スタックにはライフサイクルがあり、Edge、Stable、Frozen、Removed の 4 つの状態があります。

-
角: これらのスタックは、今後のバージョンや変更をプレビューするためのものです。これらは定期的にインプレース更新され、Xcode の最新の安定リリース、Xcode の最新のベータリリース (利用可能な場合)、およびプリインストールされたツールの最新の安定バージョンが含まれます。定期的な週次更新では、ツールの追加や削除、OS のアップグレードが行われる可能性があります。週次更新の下位互換性は、Edge スタックでは保証されません。Edge スタックでビルドを実行して、今後のツール バージョンの変更 (Ruby 3.2 がデフォルトになるなど) をプレビューし、最新のプレリリース Xcode (Xcode 15 ベータ版など) にアクセスします。
-
安定した: これらのスタックは、Xcode パッチ バージョンと重要なセキュリティ修正でのみ更新されます。信頼性と再現可能なビルドを最大限に高めるには、スタックのデフォルト (Ruby バージョンの固定など) に頼るのではなく、ワークフローで正確なツール バージョンを固定することをお勧めします。
-
角: これらのスタックは、今後のバージョンと変更をプレビューするためのものです。これらは定期的にインプレースで更新され、Xcode の最新の安定版リリース、Xcode の最新ベータ版 (利用可能な場合)、プリインストールされたツールの最新の安定版、および依存関係マネージャーのキャッシュ更新が含まれます。毎週の定期的な更新により、ツールの追加や削除、OS のアップグレードが可能になります。毎週の更新に対する下位互換性は、Edge スタックでは保証されません。 Edge スタックでビルドを実行して、今後のツール バージョンの変更 (デフォルトになる Ruby 3.2 など) をプレビューし、最新のプレリリース Xcode (Xcode 15 ベータなど) にアクセスします。
-
削除されました: これらのスタックは使用できなくなりました。
Xcode スタックの状態遷移
スタックのライフサイクル中、新しい Xcode および macOS リリースによってトリガーされると、スタックは状態間を遷移します。スタックは次のように遷移します。
-
エッジから安定へ。
-
安定から凍結まで。
-
凍結から削除へ。
エッジスタックの更新
Edge スタックは、今後の変更をプレビューしてテストする方法を提供します。Xcode ベータ版は Edge スタックとして利用可能になり、最終的な Xcode リリースは新しい安定版スタックとして利用可能になります。Xcode Edge スタックは次の場合に変更されます。
-
新しいメジャー Xcode バージョンの最初のベータ バージョンがリリースされました。
-
新しいマイナー Xcode バージョンの最初のベータ バージョンがリリースされました。
-
Xcode ベータ版の新しいバージョンがリリースされました。
Xcode のマイナー バージョンがベータ版としてリリースされると、Edge スタックとして利用できるようになります。その他の Edge スタックは、該当するベータ版が GA 版としてリリースされるまで、安定版に移行しません。
この例では、
-
現在の最新の Xcode バージョンは 15.3 です。
-
新しいメジャー Xcode バージョンのベータ版がリリースされました: Xcode 16.0 Beta 1。

新しいベータ版がリリースされると、スタックが更新されます。
-
新しい Xcode リリースは、Edge スタックとして Bitrise で利用できるようになります。この例では、Xcode 16.0 Beta 1 が Edge スタックとして利用できるようになります。
-
現在の Edge スタックは段階的に廃止され、ユーザーは新しい Edge スタックに自動的に移行されます。これは、新しい Xcode のリリースから数日後に行われます。この例では、Xcode 15.x Edge スタックが段階的に廃止されることを意味します。
-
この時点では安定したスタックは影響を受けません。
この例では、
-
現在の最新の Xcode バージョンは 15.2 です。
-
新しいマイナー Xcode バージョンのベータ版がリリースされました: Xcode 15.3 Beta 1。

新しいベータ版がリリースされると、スタックが更新されます。
-
新しい Xcode リリースは Edge スタックとして利用できるようになります。この例では、Xcode 15.3 Beta 1 が Edge スタックとして利用できるようになります。
-
この時点では安定したスタックは影響を受けません。
この例では、
-
現在の最新の Xcode バージョンは 16.0 Beta 1 です。
-
新しいベータ バージョン 16.0 Beta 2 がリリースされました。

新しいベータ版がリリースされると、スタックが更新されます。
-
Xcode 16.0 Beta 2 は、Xcode 16.0 Edge スタック上の 16.0 Beta 1 に代わるものです。
-
この時点では安定したスタックは影響を受けません。
安定したスタックの更新
安定スタックは、予期しない破壊的な変更を回避するため、エッジスタックよりも頻繁に変更されません。
既存の安定スタックは、次の場合に変更されます。
-
新しいメジャー Xcode バージョンがリリースされました。
-
新しいマイナー Xcode バージョンがリリースされました。
この例では、
-
現在の最新の Xcode バージョンは 15.3.0 です。
-
新しいメジャー Xcode バージョン Xcode 16.0 がリリースされました。

新しいメジャー バージョンがリリースされると、スタックが更新されます。
-
新しい安定スタック: Xcode 16.0 が新しい安定スタックとして Bitrise で利用可能になります。
-
最も古い安定スタックは凍結されます。この例では、Xcode 14.x スタックは凍結されますが、ビルドには引き続き使用できます。これらのスタックではツールのバージョンは変更されません。最新の状態が凍結されます。
-
古い凍結スタックは削除されます。この例では、Xcode 13.x スタックが削除されます。残りのユーザーは新しいスタックに移行されます。
この例では、
-
現在の最新の Xcode バージョンは Xcode 15.2 です。
-
新しいマイナー Xcode バージョンがリリースされました: Xcode 15.3。
新しいマイナー バージョンがリリースされると、スタックが更新されます。
-
新しい安定スタック: Xcode 15.3 が安定スタックとして Bitrise で利用可能になります。
-
Xcode 15.3 Edge スタックが最終 Xcode バージョンに更新されました。

macOS リリース
正確なmacOSバージョンは常に スタックレポートページ。
新しいメジャー macOS バージョンがリリースされると、社内テスト期間を経て Edge スタックを新しい OS にアップグレードします。
原則として、予期しないビルドの失敗を避けるため、安定スタック上の macOS はアップグレードしません。将来の Xcode リリースで新しい OS バージョンが必要になるまで待機します (たとえば、Xcode 15.0、15.1、15.2 は macOS Ventura と互換性がありますが、15.3 では Sonoma が必要です)。これが発生すると、この Xcode バージョンの安定スタック バリアントは新しいメジャー OS バージョンに基づきますが、古い安定 Xcode スタックは古い OS バージョンのままになります。
新しい主要 OS は安定スタックとして利用できませんが、エッジ スタックの 1 つでテストすることをお勧めします。エッジ ケースやパフォーマンスの低下など、皆様からのフィードバックをお待ちしています。
状態遷移をトリガーしないイベント
すべての Xcode リリースが移行をトリガーするわけではありません。たとえば、Xcode ベータ マイナー バージョン リリースは、Edge から Stable スタックへの移行をトリガーしません。新しいベータ バージョンは単に古いベータ バージョンを置き換えるだけです。 Xcode パッチ リリースは、Edge から Stable へのスタック移行をトリガーしません。代わりに、安定版スタックは新しいパッチ バージョンで更新されます。
Xcode スタック上のシミュレータ ランタイム
スタックにプリインストールされているツールのリスト(シミュレーターランタイムを含む)は、 スタックレポートページ。
次のシミュレータ ランタイムがインストールされることが予想されます。
-
特定の Xcode バージョンに一致するランタイム バージョン: これらは、Xcode が最初の起動時にダウンロードするように要求する iOS、watchOS、tvOS、および visionOS ランタイム バージョンです。
-
iOS の場合は、最新のマイナー バージョンがインストールされる前の 2 つのメジャー バージョンの 2 つの追加バージョンもインストールされます。
-
watchOS の場合、以前のメジャーリリースの最新のマイナーバージョンもインストールされます。
たとえば、Xcode 15.0 スタックを選択すると、次のことが期待できます。
-
iOS 17.0: この Xcode に一致するランタイム。
-
iOS 16.4: 以前のメジャー iOS バージョンの最新のマイナー リリース。
-
iOS 15.5: 2 つ前のメジャー iOS バージョンの最新のマイナー リリース。
-
watchOS 10.0: この Xcode に一致するランタイム。
-
watchOS 9.4: 以前のメジャーバージョンの最新のマイナーリリース。
-
tvOS 17.0: この Xcode に一致するランタイム。
-
visionOS 1.0: このXcodeの対応するランタイム
変更履歴
June 2025
Changed
Mentions of Linux stack update policy has been moved on its own page, Linux stack update policy, with more information on Edge, Stable and Frozen stacks. It also describes the yearly cadence of new Linux stacks, as well as the deprecation and removal of older Linux stacks.
Removed how to use previous versions of a stack from this page and added it to Stack update policy.
2024年7月
削除されました:
依存関係マネージャーのキャッシュ更新について言及しています。Cocoapods と Homebrew はどちらも、レジストリ Git リポジトリ全体をクローンするよりも優れたメカニズムを備えており、これらの新しいメカニズム (Cocoapods CDN、Homebrew API) がスタックで有効になっています。スタックが更新されると、ディスク上のリポジトリが最新になることが期待できますが、リリースする他の変更がない限り、安定スタックは厳密に毎週更新されなくなりました。
かわった:
安定した macOS スタックへの破壊的変更 (新しい Xcode メジャー バージョンがリリースされる年に 1 回) は、既存の古い安定したスタックには適用されなくなり、新しくリリースされた安定したスタックにのみ適用されます。たとえば、Xcode 16.0 がリリースされると、計画されている破壊的変更は Xcode 16.0 の安定したスタックにのみ適用されます。Xcode 14.x および 15.x の安定したスタックには破壊的変更は適用されません。
2024年3月
新しい:
エッジ スタックが段階的に廃止され、新しいエッジ スタックに置き換えられた場合に何が起こるかを定義します。
削除されました:
新しい Xcode Edge スタックがリリースされても、安定スタックにツールの変更は行われなくなります。
かわった:
新しい、よりシンプルなシミュレーターのランタイム ポリシー。同じ数の古い iOS メジャー バージョンがインストールされますが、それぞれに最新のマイナー バージョンのみがインストールされます。