本文へスキップ

CodeQL、Xcode 27のビルドをトレースできず Swift 6.4も解析不可

GitHubによると、CodeQLはXcode 27でのビルドをトレースできず、Swift 6.4(スウィフト6.4)も解析できません。AppleがCodeQLの頼っていたIntel向けのコードを外したためです。GitHubは、当面はXcode 26を使い続けるよう勧めています。

著者 Tech AI Wire Team

3 分で読めます

木製の机に置かれたM4 Mac mini。上面にAppleロゴがある銀色の小型デスクトップコンピューターで、後ろに黒いケーブルが見えます。
写真: Kyu3a / Wikimedia Commons, CC BY-SA 4.0

GitHubは2026年10月19日、同社のコードスキャンエンジンであるCodeQLが、Xcode 27で行うビルドをトレースできず、どのプラットフォームでもSwift 6.4のコードを解析できないと発表しました。ビルドパイプラインでセキュリティスキャンを実行しているiOSやMacのチームの場合、いまAppleの最新ツールに移行すると、GitHubが対応するまでスキャンの一部が失われます。

GitHubの発表内容

CodeQLは、GitHubのコードスキャンを支えるツールです。プロジェクトのソースコードをデータベースに変換し、そのデータベースに対してクエリを実行してセキュリティ上のバグを見つけます。コンパイル言語の場合、CodeQLは通常、ビルドを「トレース」してこのデータベースを作ります。つまり、コンパイラーの実行を監視し、コンパイルされる各ファイルを記録します。

壊れるのは、このトレースです。GitHubのチェンジログによると、macOS 27とXcode 27以降、AppleはCodeQLが頼っている一部のシステムファイルにIntel(x86_64)向けのコードを含めなくなりました。これらのファイルは、CodeQLがビルドのトレースに使うバイナリやライブラリです。告知ははっきりとこう述べています。「CodeQLは、これらのバージョンでのトレース型スキャンや、Swift 6.4の解析をサポートできません」。

環境GitHubの説明
Xcode 27がインストールされているC/C++、C#、Go、Java、Kotlin、Swiftでトレース型の抽出を利用できない
macOS 27同じ6言語でトレース型の抽出を利用できない場合がある
Swift 6.4どのプラットフォームでも非対応
Intel搭載MacCodeQLのサポートは2026年12月中旬に非推奨化

チェンジログには、Swift 6.4に対応する時期は示されていません。

Xcodeを更新するとSwift 6.4も入ってくる理由

ツールを更新するチームにとって、Swiftの問題は避けにくいものです。AppleのXcodeの要件ページには、現行のリリースとしてXcode 27、Xcode 27.1、Xcode 27.2 beta 3の3つが掲載されています。3つともSwift 6.4のコンパイラーを搭載しています。3つとも、macOS Tahoe 26.6以降を搭載したMacが必要です。

つまり、古いSwiftコンパイラーを使い続けられるXcode 27のビルドはありません。Xcode 27に移行すれば、Swift 6.4に移行することになります。Swift 6.4は、async deferを導入し、Swift Buildをデフォルトにしたリリースです。同時に、CodeQLによるSwiftの解析も失われます。これは、Xcode 27そのものを必要とするアプリにとって重要です。たとえば、iPhone DuoアプリのApp Store申請を可能にしたのは、Xcode 27.1のリリース候補版です。

GitHubが提案する回避策

GitHubの告知は、スキャンを続けるための3つの方法を挙げています。

  • 以前のツールに固定してください。 Swiftをスキャンするワークフローや、トレース型のビルドに頼るワークフローは、macOS 26以前とXcode 26以前で実行してください。
  • ランナーとツールチェーンを固定してください。 GitHub Actionsでは、ランナーイメージとツールチェーンのバージョンを明示的に指定してください。そうすれば、イメージの更新によってスキャンが予告なくXcode 27に移ることはありません。
  • 可能な場合はトレースを省いてください。 C/C++、C#、Javaでは、CodeQLのビルドモード「none」を使ってください。このモードでは、CodeQLはビルドを監視する代わりに、ソースファイルを直接読み込みます。そのため、Intel向けのコードがなくても問題になりません。

告知がビルドモード「none」を示しているのは、この3言語だけです。Swiftについての助言は、Xcode 26以前を使い続けることだけです。

開発者にとっての意味

ここでのリスクは、スキャンが動き続けているのに、気づかないうちにコードをカバーしなくなることです。今週中に確認しておきたい点がいくつかあります。

  • スキャンジョブが実際に何の上で動いているかを確認してください。 CodeQLのワークフローが固定のイメージではなく、変わりうるランナーラベルを使っている場合は、現在どのバージョンのmacOSとXcodeが使われているかを確認してください。そのうえで、GitHubが推奨するとおり、それらを固定してください。
  • 結果だけでなく、スキャンのログを読んでください。 緑のチェックマークは、ジョブが完了したことを意味します。Swiftのファイルが解析されたことの証明にはなりません。ログの抽出ステップを見て、Swiftのソースがそこに含まれていることを確認してください。
  • ビルドとスキャンを分けてください。 Xcode 27でリリースしなければならないチームは、リリースのビルドを引き続きXcode 27で行えます。CodeQLのジョブは、macOS 26とXcode 26に固定したランナーで別に実行できます。ただし、これはコードがXcode 26でもビルドできる間だけ有効です。Swift 6.4でしか使えない機能を採用した時点で、この方法は使えなくなります。
  • Intelランナーへの対応をいまから計画してください。 セルフホストのIntel Macランナーは、2026年12月中旬にCodeQLのサポートを失います。それまでに、Appleシリコン搭載マシンの予算を確保してください。
  • 次のCodeQLのリリースノートに注目してください。 2.27.1のリリースでは、C++のクエリが追加され、Actionsのロックファイルを読み込めるようになりました。Swift 6.4への対応も同じ形で届くはずです。そのときが、固定を解除するタイミングです。

出典

  1. CodeQL changes for macOS 27, Xcode 27, and Swift 6.4 - GitHub Changelog
  2. Xcode SDKs and system requirements - Apple Developer
securityappleioscodeqlswift

関連記事

横向きに開いたiPhone DuoにSlackアプリが表示され、ダイレクトメッセージのサイドバーの横に会話画面が並ぶ。Appleの報道用画像。
開発ツール

Xcode 27.1 RCでiPhone DuoアプリのApp Store申請が可能に

AppleはXcode 27.1でビルドしたiPhone Duoアプリの受け付けを始めた。折りたたみ端末(フォルダブル)が10月23日に出荷される18日前だ。Duoのスクリーンショットは2027年4月に必須となる。