← すべての記事

Xcode 27がIntelを切り離す——止まるもの、それでも出荷できるもの

以上はすべて、Xcode 27 beta 4およびmacOS 27 beta 4のリリースノートというベータ段階の文書に基づいています。36


すでに出荷済みのバイナリを変えてしまう可能性がもっとも高いIntel関連の変更を、Appleは「非推奨」ではなく「新機能」の側に記載しました。Xcode 27のリリースノートには「Intel Deprecation」という節があり、そこに含まれる項目はちょうど2つ。そしてmacOSアプリがデフォルトでUniversalビルドされなくなる方の項目は、新機能の側に置かれています。12

要点

  • 見出しの裏には3つの別々の変更が隠れており、Apple自身の文章はそれらをきちんと区別しています。Xcode 27はApple silicon Macにしかインストールできず、そこでしか動きません。2 macOS 27のSDKは、依然としてUniversalアプリをmacOS 12以降へバックデプロイできます。2 そしてARCHS_STANDARDは、ターゲットのmacOSまたはDriverKitのデプロイメントターゲットが27.0に達した時点でx86_64を含めなくなります。1
  • 出荷物を変えるのは3つ目だけで、しかも何の診断メッセージも出さずに変えてしまいます。対処法はApple自身が同じ項目に書いています。「必要であれば、ARCHSビルド設定にx86_64アーキテクチャを追加できます」1
  • Xcode 26.6では新しい挙動を先取りして確認できません。macOS専用プロジェクトにMACOSX_DEPLOYMENT_TARGET=27.0を強制指定してみましたが、ARCHS_STANDARDarm64 x86_64のまま解決されました。13
  • 監査でやりがちな2つの習慣が、誤った答えを作り出します。-sdk macosxを渡したせいでiOS専用プロジェクトがSUPPORTED_PLATFORMS = macosxARCHS_STANDARD = arm64 x86_64を報告し、プロジェクト単位で設定を解決したせいで、デフォルトターゲットがiOSのプロジェクトに含まれる2つのmacOSターゲットが見えなくなりました。14
  • 手元の11個のXcodeプロジェクト(計44ターゲット)を調べたところ、macOS向けにビルドされるのは21ターゲット、その中で最も高いmacOSデプロイメントターゲットは26.5、そしてARCHSEXCLUDED_ARCHSを設定しているものは1つもありません。14 ディスク上にある51個のmacOSアーカイブはすべてx86_64 arm64です。14
  • Intelソフトウェアの終わりが訪れるのはXcode 27ではなくmacOS 28であり、Appleの一文には読み落とせない例外が付いています。「すべてのIntelベースのソフトウェアは、レガシーゲームを除き、macOS 28.0と互換性がなくなります」10

以上はすべて、Xcode 27 beta 4およびmacOS 27 beta 4のリリースノートというベータ段階の文書に基づいています。36

3つの文、3つの異なる変更

AppleのIntel Deprecationの節には項目が2つあります。これらをひとつの主張として読むと、どちらの方向にも間違った判断につながります。

非推奨の項目が扱うのは机の上のマシンで、こちらに含みはありません。「Xcode 27はApple silicon Macにのみインストールでき、そこでのみ動作します」2 これを調整できるビルド設定はありません。Intel Macは現行Xcodeが動くマシンではなくなり、Appleの互換性表はハードウェアの条件に加えてソフトウェアの下限も示しています。Xcode 27 beta 4の要件はmacOS Tahoe 26.4以降です。4

同じ項目は続けて、出力物のほうを守ってくれます。「macOS 27のSDKは、Universal(IntelおよびApple Silicon)アプリのmacOS 12以降へのバックデプロイをサポートします」2 Appleの互換性表もこれと一致しており、Xcode 27 beta 4のmacOSデプロイメント範囲は12〜27、Xcode 26.6では11〜26.5となっています。4 下限がちょうど1リリース分だけ上がった格好です。Universalバイナリは生き残ります。

そして項目の締めくくりでは、開発の進め方そのものが温存されます。「macOS 27のようにRosettaをサポートするmacOSバージョンであれば、Intel向けの開発は引き続き可能です」2

続いて新機能の項目。すでに出荷している製品を変えてしまえるのは、こちらです。

最小デプロイメントターゲットがmacOS 27.0またはDriverKit 27.0に設定されたビルドターゲットは、デフォルトではUniversalとしてビルドされません。MACOSX_DEPLOYMENT_TARGETまたはDRIVERKIT_DEPLOYMENT_TARGETが27.0以上の場合、ARCHS_STANDARDビルド設定にx86_64は含まれなくなります。必要であれば、ARCHSビルド設定にx86_64アーキテクチャを追加できます。1

ここには切り分けておくべき論点が4つあります。第一に、Appleが名指ししている設定は2つだけで、それ以外はありません。つまりIPHONEOS_DEPLOYMENT_TARGETとその仲間はこのルールの外側です。第二に、Appleが示しているのはツールチェーンのバージョンではなくしきい値です。引き金を引くのは、自分のデプロイメントターゲットが27.0に達することです。第三に、Appleは「デフォルトではUniversalとしてビルドされません」と述べています。これは既定値の説明であって、禁止ではありません。第四に、Appleは同じ記述のなかで逃げ道も示しており、x86_64を戻す場所としてARCHSを名指ししています。

エラーを出さずに変わるデフォルト

仕組み自体はごく平凡で、だからこそ静かなのです。Appleのビルド設定リファレンスはARCHSをこう説明しています。「プロダクトをビルドする対象アーキテクチャのリスト。通常はプラットフォームが提供する定義済みのビルド設定が指定されます。複数のアーキテクチャが指定された場合、universal binaryが生成されます」5 その定義済み設定がARCHS_STANDARDであり、Appleは同じリファレンスの別の箇所でもこの依存関係を認めています。ポインタ認証について「ARCHSARCHS_STANDARDに基づかない形で上書きされている場合は効果がありません」と注記しているのがそれです。5

つまりARCHSに一度も触れていないターゲットは、プラットフォームが手渡してくるものをそのまま受け継ぎます。プラットフォームが手渡すものが変われば、バージョン管理下のどのファイルも編集していないのにプロダクトの形が変わるわけです。

この変更は失敗を生みません。コンパイラは走り、リンカも走り、アーカイブは検証を通ります。arm64単一スライスのmacOSビルドをエラーとして扱う仕組みはツールチェーンのどこにもありません。エラーではないからです。結果として得られるのは、2つあったアーキテクチャスライスが1つになった、正しく署名済みのmacOSアプリです。Apple silicon Mac上——Xcode 27の開発者が要件上いま全員使っているマシンです——では、arm64のみのビルドも同じように起動し、同じように振る舞います。この劣化が姿を現すのは、もう手元に残っていないハードウェアの上なのです。

この失敗の形を「静かだ」と表現しているのは私であってAppleではありません。Appleはデフォルトの挙動を述べるだけで、そこから先には踏み込んでいません。Appleが明言しているのは、修正が「追加」で済むということです。この言い回しは計画を立てるうえで意味を持ちます。x86_64は「必要であればARCHSビルド設定に追加できます」1 必要かどうかの判断は、Appleがこちらに委ねています。

Xcode 26.6が教えてくれること、教えてくれないこと

私のマシンで動いているのはmacOS 26.5.2上のXcode 26.6(ビルド17F113)なので、この記事のどこにもXcode 27の実挙動は登場しません。13 前世代のツールチェーンに答えられる有意義な問いは、すでに新しい挙動になっているかどうかです。答えは「なっていない」でした。

macOS専用プロジェクトにxcodebuildを向け、デプロイメントターゲットをAppleの示すしきい値の先まで上書きしても、アーキテクチャのリストは手つかずのままです。13

xcodebuild -showBuildSettings -project Cels.xcodeproj \
  -configuration Release -sdk macosx \
  MACOSX_DEPLOYMENT_TARGET=27.0 2>/dev/null \
  | grep -E "^ +(ARCHS|ARCHS_STANDARD|MACOSX_DEPLOYMENT_TARGET) ="
    MACOSX_DEPLOYMENT_TARGET = 27.0
    ARCHS = arm64 x86_64
    ARCHS_STANDARD = arm64 x86_64
    MACOSX_DEPLOYMENT_TARGET = 27.0

1行目はxcodebuildが上書き指定をそのまま返しているもので、残りが解決結果です。同じコマンドを26.0で実行しても、アーキテクチャの行はまったく同じでした。13 Xcode 26.6はこのしきい値を実装していないので、現行ツールチェーン上でこの変更を予行演習することは誰にもできません。ビフォー・アフターの比較は、Apple silicon Mac上のXcode 27を待つことになります。

一方、プラットフォームごとの適用範囲は今日でも再現できます。同じプロジェクトをiOSのSDKに対して解決するとARCHS_STANDARD = arm64が返り、失うべきx86_64はそもそもありません。macOSのSDKに対してはarm64 x86_64が返ります。13 Appleの項目が名指ししているのはmacOSとDriverKitのデプロイメントターゲットだけであり、マルチプラットフォームプロジェクトのiOS側には失うものが何もないわけです。

影響範囲を、でっち上げずに監査する

自信満々の誤答を生む習慣が2つあります。私はその両方を踏みました。

1つ目は、プロジェクトがmacOS向けにビルドされるかを調べるために-sdk macosxを渡すことです。このフラグはプロジェクト自身のSDKを上書きするので、Xcodeが答えるのはプロジェクトについての問いではなくフラグについての問いになります。上書きなしで尋ねれば、私のiOS専用ブラウザプロジェクトは本当のプラットフォームを報告します。ところが-sdk macosx付きで尋ねると、同じプロジェクトがSUPPORTED_PLATFORMS = macosxARCHS_STANDARD = arm64 x86_64を報告します。これはフラグが作り出した見かけ上の結果にすぎません。14 まずは-sdkをいっさい付けずに始めましょう。

xcodebuild -showBuildSettings -project YourApp.xcodeproj \
  -configuration Release 2>/dev/null \
  | grep -E "^ +(SUPPORTED_PLATFORMS|SDKROOT) ="

私が持つ唯一のmacOS専用アプリに対しては、2行が返ってきます。14

    SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk
    SUPPORTED_PLATFORMS = macosx

片方だけでなく、必ず両方を読んでください。このプロジェクトはSDKROOT = macosxを宣言している一方でSUPPORTED_PLATFORMSの行を一切持たないため、プロジェクトファイルをSUPPORTED_PLATFORMSでテキスト検索するとスコアはゼロになり、私が持つただ1つのmacOS専用アプリが見落とされます。14 解決済みの設定ならSDKから欠けた分が補われますが、grepにはそれができません。この段階ではMACOSX_DEPLOYMENT_TARGETは無視してください。Xcodeは無関係でも値を用意してしまうからです。実際、私のiOS専用プロジェクトのうち3つが、いまだにmacOSデプロイメントターゲットを報告します(2つが26.5、1つが26.2)。14

2つ目の習慣は、プロジェクト単位で設定を解決することです。-targetなしのxcodebuild -showBuildSettingsは1つのターゲットについて答えるだけで、混成プロジェクトでは残りが埋もれてしまいます。私のSafari機能拡張プロジェクトはSUPPORTED_PLATFORMS = iphoneos iphonesimulatorARCHS_STANDARD = arm64に解決され、Intelとは無縁のiOS専用プロジェクトのように見えました。ところがターゲットを列挙すると4つあり、うち2つはmacOS向けで、いずれもarm64 x86_64に解決されました。14

xcodebuild -list -project YourApp.xcodeproj
for t in TargetA TargetB; do
  xcodebuild -showBuildSettings -project YourApp.xcodeproj \
    -target "$t" -configuration Release 2>/dev/null \
    | grep -E "^ +(SUPPORTED_PLATFORMS|MACOSX_DEPLOYMENT_TARGET|ARCHS_STANDARD) ="
done

想定しておくべき癖がひとつ。SDKROOT = autoを持つターゲットは、SDKを明示するまでARCHS_STANDARDを解決しません。そのため私の21個のmacOSターゲットのうち15個は、コマンドに-sdk macosxを加えるまでこの行に何も表示せず、加えた時点で各プロジェクトがarm64 x86_64に解決されます。14 空欄は「未解決」であって「空」ではないのです。

そこまで来たら設定を信用するのをやめて、バイナリを読みましょう。ビルド設定が語るのは意図であり、lipoが語るのは実際に出荷した成果物です。

lipo -archs YourApp.xcarchive/Products/Applications/YourApp.app/Contents/MacOS/YourApp
x86_64 arm64

アーカイブ自身のメタデータよりもlipoを優先してください。私のアーカイブのうち2つはInfo.plistApplicationPropertiesのアーキテクチャ一覧をまったく持っておらず、アーカイブに対してplutilで問い合わせても何も返らない一方、中のバイナリに対するlipox86_64 arm64を返します。14 メタデータに記載がないのは、アーカイブの書かれ方が違っただけであって、アプリがスライスを失った証拠ではありません。

11個のプロジェクトの実態

11個のXcodeプロジェクト、計44ターゲットを監査しました。少なくとも1つのmacOSターゲットを含むプロジェクトが8個、macOS向けにビルドされるターゲットが21個、そして新しいデフォルトの影響を受けるものは現時点でゼロです。14

プロジェクト macOSターゲット MACOSX_DEPLOYMENT_TARGET 明示的なARCHS アーカイブ済みmacOSバイナリ
Reps 4個中3個 26.0、26.2 なし macOSアーカイブなし
Return 10個中3個 26.1 なし x86_64 arm64
Banana List 6個中3個 26.0 なし x86_64 arm64
Water 3個中3個 26.0 なし ディスク上になし
Yawara 3個中3個 26.5 なし ディスク上になし
Cels 3個中3個 26.0 なし x86_64 arm64
ResumeGeni for Safari 4個中2個 13.0 なし x86_64 arm64
Tile 1個中1個 15.0 なし x86_64 arm64
Ace Citizenship 4個中0個 該当なし なし 該当なし
ResumeGeni 3個中0個 該当なし なし 該当なし
Shikigami 3個中0個 該当なし なし 該当なし
合計 44個中21個 最大26.5 0 すべてUniversal

全体で最も高いmacOSデプロイメントターゲットは26.5、最も低いのは13.0で、後者はしばらく誰も手を入れていないSafari機能拡張のものです。27.0に達するターゲットは1つもないので、誰かが手作業で数字を上げないかぎり、デフォルトが変わる領域に入るターゲットも1つもありません。ARCHSを設定しているターゲットはゼロ、EXCLUDED_ARCHSもゼロ、そして全体に.xcconfigファイルが1つも存在しないため、44ターゲットすべてのアーキテクチャ決定はARCHS_STANDARDから来ていることになります。14

アーカイブという証拠は設定という証拠より強力です。アーカイブには実際に出荷されたものが記録されているからです。私のマシンには2026年4月から7月にかけてビルドされたアーカイブが79個あります。7つの異なるプロダクトにまたがる51個のmacOSアーカイブは、すべてx86_64 arm64を報告します。iOS系の28個はすべてarm64です。14 これらのプロジェクトで誰かがUniversalを選んだことは一度もありません。毎回、デフォルトがそれを生んできたのです。Appleの変更が作用するのはまさにこの母集団であり、だからこそ誰も気づかないのです。

正直に認めておくべき穴もひとつ。デプロイメントターゲットを27.0に上げるのは意図的な行為であり、私のプロジェクトにはまだそうする理由がありません。今回のきれいな結果が測っているのは、ある時点であって方針ではありません。

Intelソフトウェアが実際に終わる場所

Xcodeの変更が扱うのはビルド内のアーキテクチャです。カテゴリとしてのIntelソフトウェアの終わりはmacOS 28にあり、Appleはそれを自社のRosettaドキュメントとmacOS 27リリースノートの両方に書いています。両者の内容は一致しています。

AppleのRosettaドキュメントは、期限をはっきり示しています。Rosettaは「Apple siliconへの移行を容易にするために設計されたもので、Intelアプリ向けの汎用ツールとしてmacOS 27まで提供されます」。そして「この期間を過ぎた後は、Intelベースのフレームワークに依存する、メンテナンスされていない古いゲームタイトルのサポートを目的として、Rosettaの機能の一部を維持します」7 macOS 27のリリースノートは、同じ例外付きでその帰結を述べています。「すべてのIntelベースのソフトウェアは、レガシーゲームを除き、macOS 28.0と互換性がなくなります」10 同じリリースノートの別の箇所にあるベータ限定のコマンドが、この例外に具体的な形を与えています。sudo game-test-tool enableでレガシーIntelゲームのサポートが有効になりますが、Appleは「レガシーゲームサポートを有効にするとRosettaが無効になります」と警告しています。15

macOS 27は、この猶予期間を「何が生き残らないか」を名指しすることに費やしています。Appleの非推奨情報の節には「macOS 28.0で動作しなくなるIntelベースのアプリケーションが、情報ウインドウ(Get Info)で表示されるようになりました」とあり、別の項目では「設定 > 一般に、macOS 28.0と非互換になるIntelベースのアプリが一覧表示されるようになりました」と加えられ、そこには「システム上で見つかった、使われていないIntelベースのソフトウェア」も含まれます。89

Mac向けプロダクトを出荷している人にとっては、もっと目立たない3つの項目のほうが重要です。

まずRosetta自体が居座らなくなります。「以前にRosettaがインストールされていた場合でも、macOS 27.0へのアップグレード後に自動的には復元されません」11 Appleのドキュメントが背景を補っており、macOS 27は「Rosettaをインストールしなくても、Intelバイナリ変換のサポートを直接統合しています」と述べています。狙いはARM仮想マシン上のIntel LinuxバイナリとIntel Linuxコンテナのサポートです。7 ユーザーが固定していたアプリの挙動も変わります。以前に「Rosettaを使用して開く」に設定されていたアプリケーションは「ネイティブに起動するようになり」、Appleは「過去にRosettaを必要とした互換性の問題は、macOS 27で再評価すべきです」と助言しています。12

インストーラのデフォルトも変わります。「hostArchitectureを指定していないインストーラパッケージは、arm64がデフォルトになります」とされ、Appleは「インストール前およびインストール後のスクリプトがarm64で意図どおりに動作することを確認してください」と求めています。11 App Store外で配布されるMacプロダクトは、アプリがUniversalかどうかに関係なくこの影響を受けます。

もっとも厄介なのはプラグインのホストです。Appleは「Intelベースのプラグインおよびローダーは設定に表示されず、非互換の通知も発生しない場合があります」と警告し、手作業で確認すべきディレクトリとして~/Library/Audio/Plug-Ins/~/Library/Printers/~/Library/ColorPickers/などを挙げています。10 プラグイン1つがネイティブなアプリを足止めしうる理由は、AppleのRosettaドキュメントに書かれています。「システムは、同一プロセス内でarm64コードとx86_64コードを混在させることを禁止します。Rosettaによる変換はプロセス全体に適用され、そのプロセスが動的に読み込むすべてのコードモジュールを含みます」7 つまりIntelプラグインは、ホストを丸ごと変換実行に追い込みます。メンテナンスされていない部品ひとつが、アプリ全体をAppleが縮小予定の仕組みへの依存に変えてしまうわけです。

Universalが存在する理由は、macOS 12から27までを動かすIntel Macに届くためです。これはAppleがXcode 27向けに公表している互換性表の範囲そのものです。4 AppleはIntelソフトウェアの終わりをmacOS 28に定め、デプロイメント範囲には手を付けませんでした。したがってmacOSチームにとっての本当の問いは、自分たちのユーザーのうち何人が、そのスライスを必要とするMacをいまだに使っているか、です。

確認したうえで見つからなかったものが2つあります。Xcode 27とmacOS 27のどちらのリリースノートにも、Mac App StoreのUniversal Purchase要件の変更について記述はありません。また、どちらもmacOS 28の暦日を示していません。36 どこかで日付を見かけたら、それは推測だと考えてください。

FAQ

Xcode 27ではIntelアプリを出荷できなくなりますか?

いいえ。Intel Macを開発機として非推奨にしたのと同じ項目で、Appleはむしろ逆のことを述べています。「macOS 27のSDKは、Universal(IntelおよびApple Silicon)アプリのmacOS 12以降へのバックデプロイをサポートします」2 Appleの互換性表もこの範囲を裏づけており、Xcode 27 beta 4のデプロイメントターゲットとしてmacOS 12〜27を挙げています。4 変わるのはデフォルトです。macOSデプロイメントターゲットが27.0に達したターゲットはARCHS_STANDARDからx86_64を受け取らなくなり、Appleが示す対処は自分でARCHSx86_64を追加することです。1 Intel向けの出荷は、自然に受け継ぐものから、自分で宣言する選択へと変わります。

ARCHS_STANDARDからx86_64が外れると、ビルドは失敗しますか?

Appleの記述には、エラーも警告も、いかなる診断も出てきません。Appleが述べているのはデフォルトの変更です。macOSまたはDriverKitの27.0以上のターゲットは「デフォルトではUniversalとしてビルドされません」1 2つではなく1つのアーキテクチャスライスでコンパイルされ、リンクされ、署名されるビルドは、正当なビルドです。しかもXcode 27が使用を必須とするApple silicon Mac上では、その違いは実行時には見えません。2 Appleはデフォルトを述べるだけで帰結は書き残していないので、「静か」という言葉はAppleではなく私のものです。ビルドログがこの話題を持ち出すのを待つのではなく、アーカイブ済みバイナリに対してlipo -archsを確認してください。

新しい挙動をXcode 26で試せますか?

いいえ。Xcode 26.6(ビルド17F113)で直接確かめました。macOS専用プロジェクトでMACOSX_DEPLOYMENT_TARGETを27.0に上書きしてもARCHS_STANDARD = arm64 x86_64に解決され、同じコマンドを26.0で実行した場合と同一でした。13 前世代のツールチェーンはこのしきい値を実装していないので、Xcode 26上でビルド設定をいくらいじっても、この変更の予習にはなりません。Xcode 26.6でも再現できるのは適用範囲のほうです。同じプロジェクトがiOSのSDKに対してはARCHS_STANDARD = arm64、macOSのSDKに対してはarm64 x86_64に解決され、macOSとDriverKitのデプロイメントターゲットだけを名指しした記述と一致します。113

いまApple silicon Macは必須ですか?

Xcode 27を動かすなら、条件なしで必須です。「Xcode 27はApple silicon Macにのみインストールでき、そこでのみ動作します」2 Appleはハードウェアの条件に加えてソフトウェアの下限も設けており、Xcode 27 beta 4にはmacOS Tahoe 26.4以降が必要です。4 Intel向けの開発は古いツールチェーン上で生き延びます。Appleの表現もそうなっています。「macOS 27のようにRosettaをサポートするmacOSバージョンであれば、Intel向けの開発は引き続き可能です」2 ただしAppleのRosettaドキュメントは、その道にも境界を引いています。Rosettaは汎用ツールとしては「macOS 27まで提供され」、その後はメンテナンスされていない古いゲーム向けの縮小された一部機能が残るとされています。7

押さえておくべき点

macOSアプリ開発者へ: - まずは-sdkフラグなしで監査し、SUPPORTED_PLATFORMSSDKROOTを必ず併せて読み、そもそもそのターゲットがmacOS向けにビルドされるかを問う段階ではMACOSX_DEPLOYMENT_TARGETを無視してください。XcodeはiOS専用プロジェクトにもmacOSデプロイメントターゲットを書き込みます。私のプロジェクトでも3つがMac向けに何もビルドしないまま値を報告しています(26.5、26.5、26.2)。14 - 設定を解決する前に、xcodebuild -listでターゲットを列挙してください。私のSafari機能拡張へのプロジェクト単位のクエリは、iOS専用プロジェクトだと報告し、2つのmacOSターゲットを隠しました。14

ユーザーにIntel Macが含まれるチームへ: - x86_64は受け継ぐのではなく、明示的に決めてください。macOSデプロイメントターゲットを27.0に上げるときはARCHSを設定しましょう。Appleの記述が示す対処はまさにそれであり、飛ばしても警告は出ません。1 - 検証はビルド設定でもアーカイブのInfo.plistでもなく、アーカイブ済みバイナリに対するlipo -archsで行ってください。私のアーカイブのうち2つは、バイナリがUniversalであるにもかかわらずアーキテクチャのメタデータをまったく持っていません。14

リリース管理者へ: - ハードウェアの期限と出荷の期限を切り分けてください。Xcode 27は初日からApple silicon Macを要求しますが、Universalの出力はmacOS 12以降に届き続けますし、AppleはmacOS 28の暦日を公表していません。24 - アプリだけでなく、Intelプラグインとインストーラパッケージも棚卸ししてください。AppleはIntelプラグインが「設定に表示されない場合がある」と警告しており、Intelプラグインはホストプロセス全体を変換実行へ追い込みます。710


27のサイクルは、重大な変更を目立たない場所に隠し続けています。リンカの削除とモジュール名のルールはツールチェーンを上げた瞬間にビルドを丸ごと壊し、@Stateマクロはソースレベルで壊し、起動画面のキーは申請をブロックします。Intelのデフォルト変更は何も壊さないまま、それでもプロダクトを変えてしまいます。だからこそ、アップグレードした後ではなく前に監査する価値があるのです。シリーズ全体のハブはAppleエコシステムシリーズにあります。

参考文献


  1. Apple, Xcode 27 Release Notes, Intel Deprecation section, New Features in Xcode 27 Beta (radar 161837535). 本記事の本文に全文を逐語引用しています。「Build targets with a min deployment target set to macOS 27.0 or DriverKit 27.0 will not build Universal by default. The ARCHS_STANDARD build setting will no longer include x86_64 when MACOSX_DEPLOYMENT_TARGET or DRIVERKIT_DEPLOYMENT_TARGET >= 27.0. The x86_64 architecture can be added to the ARCHS build setting if this is needed.」 Deprecationsではなく New Features の下に記載されている点を書き留めておきます。HTMLのページはJavaScript経由で内容を描画するため、2026年7月26日にAppleのドキュメントJSONに対して検証しました。同日時点のページタイトルは「Xcode 27 Beta 4 Release Notes」です。 

  2. Apple, Xcode 27 Release Notes, Intel Deprecation section, Deprecations in Xcode 27 Beta (radar 162138432). 全文を逐語引用。「Xcode 27 will only install and run on Apple silicon Macs. The macOS 27 SDK supports back deploying Universal (Intel and Apple Silicon) apps to macOS 12 and later. Intel development is still possible with macOS versions that support Rosetta like macOS 27.」 2026年7月26日にAppleのドキュメントJSONに対して検証しました。 

  3. Apple, Xcode 27 Release Notes, Overview:「Xcode 27 beta 4 includes Swift 6.4 and SDKs for iOS 27, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27. Xcode 27 beta 4 supports on-device debugging in iOS 17 and later, tvOS 17 and later, watchOS 10 and later, and visionOS. Xcode 27 beta 4 requires a Mac running macOS Tahoe 26.4 or later.」 否定的な結果の根拠としても引用しています。2026年7月26日にリリースノート全文を「Universal Purchase」およびアーキテクチャに紐づくApp Store配布要件について検索しましたが、該当はありませんでした。文書内でそれ以外に「Universal」が現れるのは、Device Hubの修正項目にある「Universal Clipboard」と、Intel Deprecationの項目自体だけです。 

  4. Apple, Xcode Support: SDKs and system requirements. ここで比較している互換性の行の出典です。Xcode 27 beta 4: 対応macOSは「macOS Tahoe 26.4 or later」、デプロイメントターゲットは「macOS 12-27」および「DriverKit 21-27」、Swift 6.4。Xcode 26.6: 対応macOSは「macOS Tahoe 26.2 - macOS Tahoe 26.x」、デプロイメントターゲットは「macOS 11-26.5」および「DriverKit 20-25.5」、Swift 6.3。2026年7月26日取得。 

  5. Apple, Build settings reference, Xcode documentation. ARCHSの説明(「A list of the architectures for which the product will be built. This is usually set to a predefined build setting provided by the platform. If more than one architecture is specified, a universal binary will be produced.」)、EXCLUDED_ARCHSの説明(「A list of architectures for which the target should not be built. These architectures will be removed from the list in ARCHS when the target is built.」)、および本記事が依拠した依存関係を記すENABLE_POINTER_AUTHENTICATIONの項目の出典です。ポインタ認証は「Adds an additional architectural slice (arm64e) with pointer authentication instructions to ARCHS_STANDARD. Has no effect if ARCHS has been overridden to not be based on ARCHS_STANDARD.」とされています。2026年7月26日にAppleのドキュメントJSONに対して検証しました。 

  6. Apple, macOS 27 Release Notes. 取得時のページタイトルは「macOS 27 Golden Gate Beta 4 Release Notes」。ここでは文書がベータ段階であること、および否定的な結果の根拠として引用しています。2026年7月26日にリリースノート全文を「Universal Purchase」およびMac App Storeのアーキテクチャ要件について検索しましたが該当はなく、macOS 28の暦日も設定されていません。AppleのドキュメントJSONに対して検証しました。 

  7. Apple, About the Rosetta translation environment, Apple silicon documentation. 期限の出典で、Overview冒頭のImportantの補足から逐語引用しています。「Rosetta was designed to make the transition to Apple silicon easier, and will be available through macOS 27 — as a general-purpose tool for Intel apps to help developers complete the migration of their apps. Beyond this timeframe, we will keep a subset of Rosetta functionality aimed at supporting older unmaintained gaming titles, that rely on Intel-based frameworks.」 同じ補足は「macOS 27 directly integrates support for Intel binary translation, without needing to install Rosetta. This enables support for Intel Linux binaries running in ARM virtual machines (VMs) as well as Intel Linux containers.」の出典でもあります。2つ目のImportantの補足は「The system prevents you from mixing arm64 code and x86_64 code in the same process. Rosetta translation applies to an entire process, including all code modules that the process loads dynamically.」の出典です。2026年7月26日にAppleのドキュメントJSONに対して検証しました。なお本記事の本文では、Appleのemダッシュをそのまま再現しないよう、期限に関する一文を2つの引用断片に分けて示しています。両者のあいだで語句の改変や省略は行っていません。 

  8. Apple, macOS 27 Release Notes, Deprecation Information section, New Features (radar 169548657):「Intel-based applications that will no longer run in macOS 28.0 now display a treatment in Get Info.」 2026年7月26日にAppleのドキュメントJSONに対して検証しました。 

  9. Apple, macOS 27 Release Notes, EcosystemUI section, New Features (radar 175697313):「Settings > General now lists Intel-based apps that will be incompatible with macOS 28.0. The list also identifies unused Intel-based software discovered on the system. The system might suggest a website where an Apple silicon native version can be found for a listed app.」 2026年7月26日にAppleのドキュメントJSONに対して検証しました。 

  10. Apple, macOS 27 Release Notes, Rosetta section, Deprecations (radar 176042635), 全文引用:「Intel-based plugins and loaders may not appear in Settings or trigger notifications of their incompatibility. All Intel-based software will no longer be compatible with macOS 28.0, excluding legacy games. Check common plugin locations for VSTs, HAL, ARA, PDEs, Color Pickers, Quicklook & Spotlight plugins/extensions/components, such as: ~/Library/Audio/Plug-Ins/* ~/Library/Printers/ ~/Library/ColorPickers/」 「excluding legacy games」の一節が二次的な報道でしばしば落とされること、およびこの一文がIntel関連の複数のradarにまたがって帰属されがちであるのに対し実際にはこのradar単独で現れることから、注記しておきます。2026年7月26日にAppleのドキュメントJSONに対して検証しました。 

  11. Apple, macOS 27 Release Notes, Rosetta section, Deprecations. radar 163213094「If Rosetta was previously installed, it is not automatically restored after upgrading to macOS 27.0.」およびradar 171187112「Installer packages which specify no hostArchitecture will now default to arm64. Ensure any pre and post install scripts behave as intended under arm64. Additionally, audit any remaining installer plugins to ensure compatibility on Apple silicon.」の出典です。2026年7月26日にAppleのドキュメントJSONに対して検証しました。 

  12. Apple, macOS 27 Release Notes, Rosetta section, New Features (radar 168097174):「On launch, Applications previously set to ‘Open using Rosetta’ by a user will have the application launch natively. Any compatibility issues requiring Rosetta from the past should be re-assessed on macOS 27.」 2026年7月26日にAppleのドキュメントJSONに対して検証しました。 

  13. 2026年7月26日、macOS 26.5.2(ビルド25F84)上のXcode 26.6(ビルド17F113)における筆者の検証。コマンド出力は逐語で再現しています。Celsプロジェクト(SDKROOT = macosxMACOSX_DEPLOYMENT_TARGET = 26.0)に対してxcodebuild -showBuildSettings -configuration Release -sdk macosxを実行するとARCHS = arm64 x86_64およびARCHS_STANDARD = arm64 x86_64に解決されます。コマンドラインでMACOSX_DEPLOYMENT_TARGET=27.0の上書きを加えると、MACOSX_DEPLOYMENT_TARGET = 27.0とともに同一のアーキテクチャ行が返り、26.0への明示的な上書きでも結果は同じです。プラットフォームごとの適用範囲はRepsプロジェクトで確認しました。-sdk iphoneosではARCHS = arm64およびARCHS_STANDARD = arm64に解決され、-sdk macosxでは両者ともarm64 x86_64に解決されます。使用したマシンにXcode 27はインストールされておらず、本記事のどこにもXcode 27の出力は登場しません。Xcode 27はApple silicon MacとmacOS Tahoe 26.4以降を必要とするため、変更後のデフォルトはこのツールチェーンでは一切観測できません。26.6の結果が示すのは、前世代のツールチェーンがこのしきい値を実装していないという一点のみです。 

  14. 2026年7月26日、macOS 26.5.2上のXcode 26.6(ビルド17F113)による、11個のXcodeプロジェクトに対する筆者の監査。対象はReps、Return、Banana List、Ace Citizenship、Water、ResumeGeni、Yawara、Cels、Shikigami、ResumeGeni for Safari、Tile。ターゲットはxcodebuild -list -projectで列挙し、それぞれxcodebuild -showBuildSettings -project ... -target ... -configuration Releaseで個別に解決しました。合計は44ターゲットで、そのうち21ターゲットがmacosxを含むSUPPORTED_PLATFORMS値に解決され、8プロジェクトにまたがっています。この21ターゲットのターゲット別macOSデプロイメントターゲットは、26.0が10ターゲット、26.1が3、26.2が2、26.5が3、15.0が1、13.0が2で、最大は26.5、27.0に達するものはありません。11個のproject.pbxprojファイルすべてに対してgrep -cE "^[[:space:]]*ARCHS[[:space:]]*="およびEXCLUDED_ARCHSの同様の検索を行った結果はいずれもゼロで、11個のプロジェクトツリーのいずれにもfind.xcconfigファイルを見つけませんでした。21個のmacOSターゲットのうち6個は具体的なSDKROOTを持ち、-sdkフラグなしでARCHS_STANDARD = arm64 x86_64に解決されます。残る15個はSDKROOT = autoを持ち、-sdk macosxを与えるまでARCHS_STANDARDの行を解決せず、与えた後はそれぞれのプロジェクトがarm64 x86_64に解決されます。2つの監査上の罠も直接確認しました。project.pbxprojSDKROOT = iphoneosを設定しSUPPORTED_PLATFORMSを持たないShikigamiは、-sdkフラグなしではSUPPORTED_PLATFORMS = iphoneos iphonesimulatorおよびARCHS_STANDARD = arm64に解決される一方、-sdk macosxを渡すとSUPPORTED_PLATFORMS = macosxおよびARCHS_STANDARD = arm64 x86_64を報告します。SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"を明示的に宣言しているAce Citizenshipは同じフラグの下でも実際の値を保つため、この人工物はプロジェクトが設定を省略している場合にのみ現れます。ResumeGeniForSafariはプロジェクト単位ではSUPPORTED_PLATFORMS = iphoneos iphonesimulatorおよびARCHS_STANDARD = arm64に解決されますが、xcodebuild -listは4つのターゲットを報告し、そのうちResumeGeniForSafari-macOSResumeGeniForSafariExtension-macOSSUPPORTED_PLATFORMS = macosxおよびARCHS_STANDARD = arm64 x86_64に解決されます。CelsはSDKROOT = macosxを宣言している一方でproject.pbxproj内のSUPPORTED_PLATFORMSの行はゼロなので、プロジェクトファイルをSUPPORTED_PLATFORMSでテキスト検索すると完全に見落とします。Ace Citizenship、ResumeGeni、ShikigamiはいずれもMACOSX_DEPLOYMENT_TARGET(それぞれ26.5、26.2、26.5)を報告しますが、Mac向けには何もビルドしません。アーカイブの数値は、~/Library/Developer/Xcode/Archives配下のすべての.xcarchive内のメイン実行ファイルに対して実行したlipo -archsによるもので、2026年4月16日から7月16日までの日付を持つ79個のアーカイブが対象です。7つの異なるプロダクト(941 Tiles、Banana List、Cels、LearnMateria、ResumeGeni for Safari、Return、Tile)にまたがる51個のmacOSアーカイブはすべてx86_64 arm64を報告し、iOS系の28個のアーカイブはすべてarm64を報告します。Celsの2つのアーカイブはいずれもアーカイブのInfo.plistApplicationPropertiesのアーキテクチャ一覧を持たないため、plutil -extract ApplicationProperties.Architecturesは何も返さない一方、バイナリに対するlipox86_64 arm64を返します。当該バイナリのスライスごとのLC_BUILD_VERSIONは、両スライスともminos 26.0およびsdk 26.5を報告します。WaterとYawaraはmacOSアーカイブもビルド済みmacOSプロダクトもディスク上に存在しないため、これらの行は解決済みビルド設定のみに基づいています。本監査の対象は現在の作業ツリーとローカルのアーカイブディレクトリのみで、git履歴やCIの出力は含みません。 

  15. Apple, macOS 27 Release Notes, Gaming section, New Features (radar 166398727), 全文引用:「A new command line tool lets you enable support for legacy Intel-based games during beta releases. To enable it, run the following command in Terminal: sudo game-test-tool enable. Restart your Mac computer for the change to take effect. Once enabled, games run transparently through the new underlying system behavior. Note that enabling legacy game support disables Rosetta, non-game processes might crash or behave unexpectedly, and this feature is intended only for playing legacy Intel-based games and is not available outside of macOS beta releases.」 2つのリリースノート文書のうち、「excluding legacy games」という例外が実際にどう振る舞うかを記述している唯一の箇所として引用します。2026年7月26日にAppleのドキュメントJSONに対して検証しました。 

関連記事

Xcode 27でld64が削除され、モジュール名の一意性が必須に

Xcode 27はld64リンカを削除し、Clangモジュール名の一意性を要求します。どちらもツールチェーン更新で発火します。7プロジェクトの監査と検証済みコマンドをまとめました。

4 分で読める

@Stateマクロ — Xcode 27でコンパイルが通らなくなるコード

Xcode 27では、SwiftUIの`@State`がSwiftマクロとして再実装されます。破壊的変更のトリガーはデプロイメントターゲットではなくツールチェーンであり、2つのパターンがコンパイルできなくなります。

4 分で読める

Core ML vs MLX vs Foundation Models: Choosing Apple's On-Device AI Stack

Apple ships four ways to run models on-device. A decision framework with measured numbers: Foundation Models, Core ML, M…

11 分で読める