Xcode 27の正式版(ビルド27A266a)は、米国時間の2026年9月14日にAppleのリリース一覧へ掲載されました。iOS 27やmacOS 27 Golden Gateと同じ日です。その後、iPhone Duo向けSDKを載せた27.1がRCまで進み、27.2もベータ2が出ています。この記事はXcode 27という版に絞って、動作要件、Xcode 26からの差、移行でビルドが止まる変更を、Appleのリリースノートと互換性表で確認できる形にまとめました。Xcode全般の版の確かめ方と更新手順はXcodeのバージョン確認とアップデート手順で扱っています。
まとめ:Xcode 27の正式版と移行判断の要点
| 項目 | 内容(2026年10月13日時点) |
|---|---|
| 正式版 | Xcode 27(27A266a)・2026年9月14日 |
| 後続版 | 27.1 RC(27A9275)・27.2 beta 2(27B5028f) |
| 動作するMac | Apple siliconのみ |
| 必要なmacOS | Tahoe 26.6以降 |
| 同梱 | Swift 6.4・各27系SDK(6つ) |
| デプロイ下限 | iOS 15・watchOS 9・macOS 12 |
| 実機デバッグ | iOS 17・tvOS 17・watchOS 10以降 |
| App Store提出 | 2027年4月から27系SDKが必須 |
手元のMacがApple siliconでmacOS 26.6以降なら、今日からXcode 27へ移れます。App Storeは2027年4月から27系SDKでのビルドを求めるため、急ぐ理由が無いチームでも、それまでにSE-0508のソース互換性破壊、ld64の削除、macOS 27ターゲットでのx86_64既定除外の3点は潰しておくべきです。影響は該当するコードやビルド設定がある場合に限られ、x86_64の既定除外はビルドが成功しても成果物のアーキテクチャ確認で気づく場合があります。
Xcode 27のリリース日と27.1・27.2の配信状況
ベータ6回とRCを経た正式版までの日程
初版ベータはWWDC26の基調講演当日に出て、正式版までに約3か月かかりました。ベータ2〜5の公開日はリリース一覧のRSSが古い項目を落とすため直接は取れません。そこでApp Store Connectのリリースノートに載る「その版でビルドしたアプリの受け付け開始日」を並べました。日付はいずれも米国時間です。
| 版 | ビルド | 日付 | 根拠 |
|---|---|---|---|
| beta(初版) | 27A5194q | 6月8日 | リリース一覧 |
| beta 2〜5 | 非掲載 | 6月23日〜8月11日 | TestFlight受付 |
| beta 6 | 27A5252f | 8月24日 | リリース一覧 |
| RC | 非掲載 | 9月9日 | App Store受付 |
| 正式版 | 27A266a | 9月14日 | リリース一覧 |
| 27.1 beta | 27A9269 | 9月18日 | リリース一覧 |
| 27.2 beta 2 | 27B5028f | 9月28日 | リリース一覧 |
| 27.1 RC | 27A9275 | 10月5日 | リリース一覧 |
App Store Connectは9月9日からRCでビルドしたアプリの提出を受け付け、9月14日に正式版27.0系SDKでの提出へ切り替えました。前世代のXcode 26正式版は2025年9月15日だったので、ほぼ同じ時期に出ています。
Xcode 27.1のiPhone Duo対応と27.2の機能更新
番号の順と配信の順が逆になっている点に注意が要ります。27.2のベータは9月16日にTestFlightの受け付けが始まり、27.1のベータは9月18日でした。Xcode 27.2 beta 2のリリースノートは冒頭で「iPhone DuoのiOS SDKとシミュレータを使うにはXcode 27.1 betaを入手する」よう案内しており、27.1はiOS 27.1 SDK(iPhone Duo対応)を載せる専用の系列です。27.1 RCのSDKもiOSだけが27.1で、ほかの5つは27のままです。
27.2 beta 2では、JSON形式のプロジェクトファイル(.xcproj)がファイルインスペクタから選べるようになりました。従来のplist形式よりマージで衝突しにくく、Xcode 27系の以前の版でも開けるとされています。テスト結果のカバレッジを返すMCPツール GetCodeCoverage も追加されました。iPhone Duoを対象にしないアプリなら、27.1を見送って27.2の正式版を待つ判断で問題ありません。
動作要件:Apple silicon専用とmacOS Tahoe 26.6以降
ベータ期の26.4から26.6へ上がったmacOSの下限
正式版のXcode 27リリースノートは「Xcode 27 requires a Mac running macOS Tahoe 26.6 or later」と書いています。beta 6までは26.4以降だったので、ベータを26.4や26.5で試していたMacは、正式版を入れる前にmacOSの更新が必要です。Mac App StoreのXcode 27.0も最小OSを26.6としています。27.1 RCと27.2 beta 2の要件も同じ26.6以降です。
macOSの版とCPUは、次のスクリプトでまとめて判定できます。複数台を管理しているなら、構成管理に組み込むと移行対象の棚卸しが一度で済みます。
#!/bin/sh
# Xcode 27の動作要件(Apple silicon・macOS 26.6以降)を判定する
arch=$(uname -m)
if [ "$arch" = "x86_64" ] && [ "$(sysctl -in sysctl.proc_translated 2>/dev/null)" = "1" ]; then
arch=arm64
fi
ver=$(sw_vers -productVersion)
major=$(echo "$ver" | cut -d. -f1)
minor=$(echo "$ver" | cut -d. -f2)
[ -z "$minor" ] && minor=0
ok=1
if [ "$arch" != "arm64" ]; then
echo "NG: CPU=$arch (Apple siliconではない)"; ok=0
fi
if [ "$major" -lt 26 ] || { [ "$major" -eq 26 ] && [ "$minor" -lt 6 ]; }; then
echo "NG: macOS $ver (26.6以降が必要)"; ok=0
fi
if [ $ok -eq 1 ]; then
echo "OK: Xcode 27を導入できる (CPU=$arch, macOS $ver)"
else
exit 1
fi
macOS 26.6.2のIntel Macで実行した結果は次のとおりで、終了コードは1でした。macOSの版は条件を満たしていても、CPUで弾かれます。
$ sh check_xcode27.sh
NG: CPU=x86_64 (Apple siliconではない)
Intel Macに残る選択肢とRosettaの期限
リリースノートのIntel Deprecation節は「Xcode 27 will only install and run on Apple silicon Macs」と明記しており、Intel MacでXcode 27を動かす方法はありません。Intel Macで開発を続けるなら、Xcode 26.6に留まることになります。
Intel向けアプリの配布はまだ終わりません。同じ節は、macOS 27 SDKがUniversal(IntelとApple silicon)アプリをmacOS 12以降へ後方配布できること、macOS 27のようにRosettaが動くmacOSならIntel向けの開発も可能なことを書いています。ただしこの逃げ道には期限があります。macOS 26.4のリリースノートは、アプリ向けのRosettaサポートがmacOS 27の後に終わると予告しました。macOS 27のリリースノートでは、macOS 28.0で動かなくなるIntelアプリを「設定」>「一般」に一覧表示する機能まで入っています。Intel専用のバイナリを配っているなら、一部の旧作ゲームを除きmacOS 28.0で動作しなくなることを前提に、Apple silicon対応を進めてください。
macOS 27でXcode 26.6を使う場合の扱い
Appleの互換性表では、Xcode 26.6が対応するmacOSは「Tahoe 26.2〜26.x」です。macOS 27は対応範囲に含まれていません。開発機をmacOS 27へ上げたら、Xcodeも27へ上げる前提で計画するのが安全です。逆に、Xcode 26系を残しておく必要がある検証機は、macOS 26のまま止めておきます。
Xcode 26系でiOS 27の端末を検証する場合も注意があります。Xcode 27のリリースノートは、Xcode 26.4以前でビルドするとiOS 27.0などでAddress Sanitizerが起動しない場合があるとして、26.5以降を使うよう案内しています。
デプロイメントターゲットと実機デバッグ範囲の変化
ビルドマシンを上げる前に見ておきたいのは、互換性表のXcode 26.6とXcode 27の行の差です。
| 項目 | Xcode 26.6 | Xcode 27 |
|---|---|---|
| macOS | Tahoe 26.2〜26.x | Tahoe 26.6以降 |
| デプロイ下限 | watchOS 8・macOS 11 | watchOS 9・macOS 12 |
| DriverKit下限 | 20 | 21 |
| iOS・tvOS下限 | 15 | 15(据え置き) |
| 実機・シミュレータ | iOS 15以降 | iOS 17以降 |
| watchOSの実機 | watchOS 8以降 | watchOS 10以降 |
| Swift | 6.3 | 6.4 |
iOSアプリはデプロイメントターゲットをiOS 15のまま維持できます。一方で、Xcode 27につないでデバッグできる実機とシミュレータはiOS 17以降、tvOS 17以降、watchOS 10以降に限られます。iOS 15や16の実機を検証端末として残しているチームは、端末を入れ替えるか、Xcode 26系を併用するかを先に決めてください。Instrumentsの計測対象も同じくiOS 17、watchOS 10、tvOS 17以上が必要です。
Device Hubからのキーボード・ポインタ入力は、さらに狭くiOS 18、watchOS 11、visionOS 2以降に限られると非推奨節に書かれています。27.2 beta 2ではiOS 17のシミュレータへの入力が修正対象に挙がっており、この範囲は版ごとに動いています。
入手方法とXcode 26との併用
正式版はMac App Storeで配布されています。App Storeのメタデータ上の版は27.0、サイズは約3.1GBです。27.1 RCや27.2ベータはApple DeveloperサイトのDownloadsからxipで入手します。Mac App Storeで更新すると /Applications/Xcode.app は27に置き換わるため、Xcode 26.6を残したい場合は、先にDownloadsからXcode 26.6のxipを取得して別名で置いてください。
コマンドラインの xcodebuild や swift が参照する既定の開発環境は xcode-select で選択します。ただし、CIなどで DEVELOPER_DIR を設定している場合は、その指定が優先されます。CIやビルドスクリプトが意図しない版を使っていないか、次の手順で確認します。
$ xcode-select -p
$ sudo xcode-select -s /Applications/Xcode-26.6.app
$ xcodebuild -version
$ sudo xcode-select -s /Applications/Xcode.app
$ xcodebuild -version
xcodebuild -version のビルド番号が27A266aなら正式版のXcode 27です。切り替えたあとに番号まで確かめないと、Xcode 26でビルドした結果をXcode 27の挙動として報告してしまいます。同梱されるSwift 6.4の言語側の変更とXcodeとの対応はSwiftのバージョン対応表と更新手順で確認できます。
Xcode 26から移行するとビルドが止まる変更
新機能の紹介では触れられにくいものの、既存プロジェクトを実際に止めるのはこちらの変更です。リリースノートから影響の大きいものを選びました。
| 変更 | 症状 | 対処 |
|---|---|---|
| SE-0508 | 配列・辞書の初期値付きでgetがinitより前だとエラー | initを先に書く |
| 依存スキャナ | Clangモジュール名の重複でエラー | 名前を一意にする |
| ld64の削除 | -ld_classic が非サポート | フラグを削除 |
| x86_64の既定除外 | macOS 27ターゲットがarm64のみ | ARCHSに明示 |
| C++標準ライブラリ | macOS 11.0未満を非サポート | 下限を上げる |
SE-0508によるソース互換性の破壊
リリースノートのSwift Compiler節は、init アクセサと配列・辞書リテラルの初期値を両方持つ計算プロパティで、ゲッターを init より先に書いているとコンパイルできなくなると明記しています。AppleはこれをSE-0508による既知の互換性破壊と位置づけ、init アクセサを先に書くよう案内しています。
struct S {
var _strings: [String]
var strings: [String] = ["hello"] {
// Xcode 27(Swift 6.4)では init を get より先に書く
@storageRestrictions(initializes: _strings)
init { _strings = newValue }
get { _strings }
}
}
print(S().strings)
Xcode 26世代のSwift 6.3.3(Command Line Tools)で、ゲッターが先の元の形と、上の入れ替えた形の両方を swiftc -swift-version 6 でビルドして実行したところ、どちらも ["hello"] を出力しました。入れ替えた形は現行のツールチェーンでも通るので、Xcode 27へ上げる前に修正を済ませておけます。
Swiftの依存関係スキャナは高速化と引き換えに、1回のスキャンから見えるClangモジュールの名前が一意であることを求めるようになりました。SDKと同名の module.modulemap を同梱しているサードパーティのソースが典型例です。ビルドが「モジュールが重複している」と止まったら、ヘッダ検索パスの重複から疑ってください。
リンカとアーキテクチャのビルド設定
ld64リンカは削除され、-ld_classic はサポートされなくなりました。古いプロジェクトのOther Linker Flagsに残っていないか、検索してから外します。
デプロイメントターゲットをmacOS 27.0またはDriverKit 27.0にしたターゲットは、既定でUniversalにならなくなりました。MACOSX_DEPLOYMENT_TARGET が27.0以上のとき ARCHS_STANDARD からx86_64が外れるためで、警告は出ません。Intel向けのスライスが要るなら ARCHS に明示的に足します。C++標準ライブラリのmacOS最小デプロイメントターゲットが11.0になったのは、これとは別の制約です。Universalアプリの後方配布がmacOS 12以降という話と混同しないでください。
UIKitのストーリーボードとxibは、シミュレータをダウンロードせずにコンパイルできる新モード toolchain が既定になりました。ビルドサーバーには利点ですが、問題が出たら IBC_COCOATOUCH_COMPILER_MODE = simulator で従来の方式に戻せます。iOS 27 SDKでビルドしたアプリ側の変更、たとえばシーンベースのライフサイクル必須化はUIKitとSwiftUIの違いとiOS 27の変更点で扱っています。
@Stateのマクロ化で変わる初期化の回数
SwiftUIの @State は、Xcode 27以降でビルドすると State()マクロを使うようになりました。Appleのドキュメントは、Xcode 26以前でビルドした場合は従来のプロパティラッパーが使われると注記しています。マクロへの切り替えはビルドに使うXcodeで決まりますが、初期値の繰り返し評価を避ける新しい動作の後方対応はiOS 17世代以降のOSが対象です。
変わるのはクラスを保持しているときの初期化の回数です。SwiftUIの更新履歴は、プロパティがクラスの場合に初期化と保持が1回だけになると説明しています。@Observable なモデルを @State private var model = Model() の形で持っている画面では、ビューの再生成のたびに走っていた初期化処理が消えます。初期化の副作用(ログ出力や通信の開始)に頼っている実装があれば、移行前に洗い出してください。ドキュメントはあわせて、@State を private にするよう案内しています。イニシャライザで初期値を渡す必要がある場合は、プロパティ宣言側の初期値を省略します。TN3211によると、宣言時に初期値を持つ @State へイニシャライザで代入しても、その値は捨てられて宣言時の値が使われます。また、ほかの格納プロパティを初期化する前に @State へ代入すると「used before being initialized」のエラーになるので、通常のプロパティを先に初期化してください。
コーディングエージェント機能の変更
Xcode 27で最も目立つ変更は、コーディングアシスタントがナビゲータからエディタ領域へ移り、エージェントの計画や差分、プレビューのスナップショットが成果物として会話の横に並ぶようになったことです。計画は編集できるMarkdownとして出て、実行前にレビューと承認ができます。
- Google GeminiはXcode 26.6ですでに対応し、Xcode 27ではGoogle Antigravityも利用できる
- スキル・MCPサーバー・ACPエージェントをまとめたプラグインで拡張できる
- エージェントがシミュレータを起動し、タッチを合成して画面を確かめられる
- エージェントとその子プロセスのファイルアクセスを監視する保護層を設定で有効にできる
Xcodeを開かずに動くMCPサーバーは、sudo xcrun mcp-server enable で有効にするプレビュー機能として入りました。無人環境向けに全権限を事前承認する --unsafe-always-allow-all-agents もありますが、Apple自身が手元の開発機では推奨しない設定としています。CIのような使い捨ての環境に限るべきです。AnthropicやOpenAIのエージェントとの連携はXcode 26.3から始まっており、その設定はXcode 26.3のダウンロード方法とエージェント設定で解説しました。
エージェントに検証を任せても、変更範囲が大きい場合はレビュー負荷が増える可能性があります。差分が一度に大きくなりやすいので、計画の段階で変更を人が読める単位に区切る運用を先に決めておかないと、承認が形だけになります。
App Store提出要件と移行のタイミング
App Store Connectは9月14日から、Xcode 27と27.0系SDKでビルドしたアプリの提出を受け付けています。Appleの今後の要件のページで現在有効なのは「2026年4月28日以降、Xcode 26以降とiOS 26などのSDKでビルドすること」です。そのうえで提出の案内ページは、2027年4月からiOS・iPadOS・tvOS・visionOS・watchOSのアプリに各27系以降のSDKでのビルドを求め、iOSアプリにはiOS 15以降のターゲットを求めると告知しています。日付までは示されていませんが、前世代もXcode 26の正式版(2025年9月15日)から約7か月で必須化されており、同じ間隔です。
したがって移行の順序は、次のように決めるのが現実的です。
- 要件判定スクリプトで、Apple siliconとmacOS 26.6以降を満たさない開発機とビルドマシンを洗い出す
- Xcode 26.6のままSE-0508とOther Linker Flagsを直し、先に本線へ入れる
- Xcode 27でビルドし、iOS 27 SDK側の変更(シーンライフサイクルなど)を検証する
- CIのイメージをXcode 27へ切り替え、iOS 16以前の検証端末の扱いを決める
iOS 27そのものの配信状況と対応機種はiOS 27のリリース日と対応機種・SDK破壊的変更にまとめています。移行の検証や既存アプリの改修を外部に任せたい場合は、iOSアプリ開発の支援でも相談を受け付けています。
よくある質問
Xcode 27はいつリリースされましたか?
正式版(27A266a)は米国時間の2026年9月14日に公開されました。初版ベータは6月8日、beta 6は8月24日で、App Store Connectは9月9日からRCでビルドしたアプリを受け付けていました。後続の27.1は10月5日にRCが出ています。
Xcode 27に必要なmacOSのバージョンは何ですか?
macOS Tahoe 26.6以降です。ベータ期は26.4以降でしたが、正式版で引き上げられました。27.1 RCと27.2 beta 2も26.6以降を求めています。
Intel MacでXcode 27は使えますか?
使えません。Xcode 27はApple silicon搭載Macにのみインストールでき、実行もできます。Intel Macで開発を続けるならXcode 26.6に留まります。Intel向けアプリの配布は、macOS 27 SDKでmacOS 12以降へのUniversal配布として続けられます。
macOS 27でXcode 26は使えますか?
Appleの互換性表では、Xcode 26.6の対応macOSはTahoe 26.2〜26.xで、macOS 27は含まれていません。Xcode 26系を残す必要がある検証機は、macOS 26のまま運用するほうが安全です。
iOS 27 SDKはどのXcodeに入っていますか?
iOS 27 SDKはXcode 27に同梱されており、別途ダウンロードする必要はありません。iPhone Duo向けのiOS 27.1 SDKはXcode 27.1(10月5日時点ではRC)に入っています。