【2026-10-03 追記】macOS 27 に上げたら、Rosetta 2 が消えていました
この記事を書いたあと、eightのMacを macOS 27(27.0.1)に上げたところ、Rosetta 2 が自動では戻らず、Intel 用のプログラム(Wine など)が「bad CPU type in executable」で起動しなくなりました。Apple の macOS 27 リリースノートにも「Rosetta を入れていても、macOS 27.0 へのアップグレード後は自動で復元されない」と明記されています。インストール履歴を見ると、macOS 26 の間は OS を更新するたびに Rosetta の更新も自動で入っていたのに、27.0 と 27.0.1 の後には入っていませんでした。
・直し方:ターミナルで softwareupdate --install-rosetta --agree-to-license(Intel 用のアプリを開いたときに出る案内からでも入れられます)
・確かめ方:arch -x86_64 /usr/bin/true で何も出なければ入っています
・入れ直すと、Wine や Game Porting Toolkit は macOS 27 でもこれまでどおり動きました。macOS 27 で Rosetta が使えなくなったわけではなく、「上げた直後は入っていない」という変化です。
・あわせて、Wine を初めて動かしたときに「macOS 28 では開けなくなるコンポーネントが含まれています」という通知が出るようになりました。
・macOS 27 で Game Porting Toolkit や Wine がどこまで動くかは macOS 27でGame Porting Toolkitは動くのか にまとめています。

MacでSteamのゲームを遊んでいる人も、Unityや古いJavaで開発している人も、どこかでRosetta 2のお世話になっています。そのRosetta 2が、ついに終わりに向かって動き出しました😳

先に結論を書きます。いま(2026年9月)はまだ全部動きます。Appleのサポート記事では、Rosettaがふつうに使えるのはmacOS 27までで、macOS 28(2027年秋の見込み)からは「更新の止まった古いゲーム」向けだけに絞られます。ただしApple自身のページ同士で書いてあることが食い違っていて、どれを信じるかで猶予が1年変わります。

そこで今回は、「いつ止まるか」を一次情報で確かめたうえで、自分のMacでRosettaに頼っているものを全部洗い出し、何から手を付ければいいかを優先度つきでまとめました。数えてみたら、見かけの数字と本当に困る数がまるで違いました。

この記事は下調べが2つ、実験が3つあります。

先に実測した環境を書いておきます。★この記事の数字はこのMacに入っているものを数えた結果です。

項目内容
パソコンApple M4 / メモリ32GB
OSmacOS 26.6.2(25G83)。⚠macOS 27 はアップデートとして届いているが、入れていない
Rosetta 2インストール済み(oahd が動作中)
調べたものアプリ476本/Homebrew・pyenv・Java・Unity(6000.4.5f1 と 6000.6.0f1)・Unreal Engine 5.7・Steam・Whisky・Wineskin の中にある実行ファイルとライブラリ
調べ方ファイル先頭の Mach-O ヘッダを直接読む自作スクリプト(Python 3.12.5)+ lipo / vmmap / arch
スポンサーリンク

用語集

用語平たく言うとなぜ効くのか
Rosetta 2Intel Mac 向けのプログラムを、Apple silicon の上で動くようにその場で翻訳するしくみこれが無くなると、Intel専用のものは起動すらしなくなる
arm64 / x86_64CPUの「言葉」の種類。Apple silicon は arm64、Intel は x86_64プログラムはどちらかの言葉で書かれている。両方入りもある
ユニバーサルarm64 と x86_64 の両方を1ファイルに入れたプログラムMacが自分に合うほうを選ぶので、Rosettaが無くても動く
Mach-OMacの実行ファイルやライブラリの形式先頭の数バイトを読むと、どの言葉で書かれているかが分かる
実行ファイルそれ自体を起動するプログラム★Rosettaが無くなって本当に困るのはこれ
ライブラリ(dylib)ほかのプログラムに読み込まれて使われる部品(p979で詳しく書きました)読み込む側が arm64 だと、x86_64 の部品は最初から読めない
プロセスいま動いている1本のプログラム★Rosettaはプロセスごとに翻訳する。1本の中で混ぜられない
互換レイヤー(Wine)WindowsのゲームをWindowsなしで動かすしくみ。Whisky・CrossOver・Porting Kit の中身★Macで配られているWineはほぼすべて x86_64

【下調べ】いつ何が止まるのか ── Appleのページ同士が食い違っていた

まず一次情報です。Appleが出している3つのページを読み比べました。

ページ日付書いてあること
サポート記事(Rosettaのインストール方法)2026-09-14 更新macOS 27以前なら使える。macOS 28からは、Intelベースのフレームワークに頼る更新の止まった一部の古いゲーム向けだけになる
開発者ニュース「Rosettaサポートの変更」2026-09-01macOS 26.4以降、Rosettaに頼るアプリを起動すると通知が出ることがある。macOS 27が最後のリリースで、その後はIntel専用アプリは動かなくなる。古いゲーム向けの機能は残す
開発者ニュース「App Store の受付開始」2026-09-09⚠「macOS 26 が Intel Mac と Rosetta に対応する最後で、macOS 27 は Apple silicon 専用」

上の2つは同じことを言っています。27までは全面的に使えて、28からはゲームだけです。問題は3つ目で、ここだけ「Rosettaは26まで」と読めます。Intel Mac の対応終了(これは26で正しい)とRosettaを1文にまとめてしまった書き方に見えますが、Appleは訂正を出していません。

この記事の立場
いちばん具体的で、いちばん新しく更新されたサポート記事(9月14日)の「27まで全面・28からゲームだけ」を事実として扱います。ただし、3つ目のページがある以上、「27でも一部が止まる」可能性はゼロではありません。eightはmacOS 27をまだ入れていないので、27で実際にどうなるかは確かめていません。

Rosetta 2 が縮んでいく順番(Appleのサポート記事の書き方) macOS 26.4 起動時に 通知が出始める macOS 27 2026年9月 公開 全面的に使える ★最後のバージョン macOS 28 2027年秋の見込み 更新の止まった 古いゲーム向けだけ ⚠Appleの9月9日の開発者ニュースだけは「Rosettaは26まで」と読める書き方をしている

もうひとつ、「ゲーム向けだけ残す」の中身はまだ公表されていません。どのゲームが対象なのか、判定は誰がどうするのか、そしてWineのような互換レイヤーが「ゲーム」として扱われるのか。ここは現時点で分からないことです。推測では書かず、分からないものとして扱います。

【下調べ・続き】Rosettaは「プロセス単位」で翻訳している

洗い出しの前に、何が止まって何が止まらないのかを決めておく必要があります。これを取り違えると、数える意味がなくなるからです。そこで、同じ小さなプログラムを3通りに作って確かめました。

#include <stdio.h>
#include <sys/sysctl.h>
/* 自分がRosettaで翻訳されて動いているかを自己申告する */
int main(void) {
    int t = 0; size_t n = sizeof t;
    sysctlbyname("sysctl.proc_translated", &t, &n, NULL, 0);
    printf("proc_translated=%d\n", t);
    return 0;
}
clang -arch x86_64            hello.c -o hello_x86_64
clang -arch arm64             hello.c -o hello_arm64
clang -arch x86_64 -arch arm64 hello.c -o hello_universal

★ポイントは arch -arm64 です。これを付けると「arm64 で起動しろ」と強制できるので、Rosettaを消さずに「Rosettaが無い状態」を再現できます。

作ったものふつうに起動arch -arm64で起動(=Rosettaが無い状態)
x86_64 だけ翻訳中(1)Bad CPU type in executable
arm64 だけネイティブ(0)動く
ユニバーサルネイティブ(0)動く

Rosettaが無くなったときに出るエラーは、この Bad CPU type in executable です。見覚えがあったら、それが原因です。

次に、ライブラリを確かめました。x86_64 だけのライブラリを作り、同じプログラムからネイティブとRosettaの両方で読み込みます。

[ネイティブ] 読み込めない: ... mach-o file, but is an incompatible architecture
             (have 'x86_64', need 'arm64e' or 'arm64e.v1' or 'arm64' or 'arm64')
[翻訳中]     読み込めた answer()=42
Rosettaは「プロセスまるごと」を翻訳する ネイティブで動くプロセス(arm64) 本体 arm64 部品 x86_64 読めない ★中にIntel専用の部品があっても もともと使われていない Rosettaで翻訳中のプロセス(x86_64) 本体 x86_64 部品 x86_64 読める ★Rosettaが消えると 本体ごと起動しなくなる

ここから決まる数え方
ネイティブのプロセスは x86_64 の部品をそもそも読み込めないので、ユニバーサルアプリの中にIntel専用のライブラリが混ざっていても、ふだんは使われていません。Rosettaが無くなって本当に困るのは、Intel専用の「実行ファイル」を起動するときです。数えるならそこを数えます。

もうひとつ分かったことがあります。ユニバーサルでも arch -x86_64 で起動すると、翻訳中(1)になりました。Mac版Steamの回で、ネイティブ対応のゲームなのにSteamから起動するとRosettaで動いてしまったのは、起動する側がx86_64を指定していると考えると辻褄が合います(Steamの中身までは確かめていません)。

【実験1】自分のMacでRosettaを通っているものを探す ── いま動いているものを見ても分からない

まず、いちばん手軽な方法から試しました。いま動いているプロセスを全部見て、翻訳中のものを数えます。アクティビティモニタの「種類」列と同じことを、コマンドでやっています。

vmmap <PID> | grep "Code Type"
#   ARM64               → ネイティブ
#   X86-64 (translated) → Rosettaで翻訳中
見たプロセスネイティブ翻訳中読めなかった
547536011

翻訳中は0件です。これだけ見ると「このMacはRosettaを使っていない」と言えそうですが、⚠違います。RosettaはIntel専用のものを起動したときにだけ現れるので、いま動いていないものは見えません。

次に、macOS自身の一覧を見ました。「このMacについて」→「詳細情報」→「システムレポート」→「アプリケーション」の「種類」列です。コマンドなら次の1行で出ます。

system_profiler SPApplicationsDataType -json
#   arch_kind: arch_arm_i64 → ユニバーサル
#              arch_arm     → Apple silicon だけ
#              arch_i64     → Intel だけ  ★ここが止まる
種類本数
ユニバーサル395
Apple silicon だけ16
Intel だけ11
iPhone/iPad用20
その他34

Intelだけの11本は、Visual Studio(for Mac)とその更新ツール、App Storeで入れた画像ツール、Porting KitのWineskin、Unreal Engine 5.7に付いてくる補助アプリ2つ、古いUE4の連携サービス、そしてUnityの UnityPlayer.app 4つでした。

⚠この Unity の4つは、よく見るとこのMacで動かすものではありません。macos_x64_player_... という名前のとおり、Intel Mac 向けにゲームを書き出すときの型紙で、隣には arm64 版とユニバーサル版の型紙も並んでいます。一覧の「Intelだけ」には、こういう使わないものも混ざります。

476本中11本なら大したことはない、と言いたいところですが、⚠この一覧は .app しか数えていません。コマンドやライブラリ、開発ツールの中身は出てこないので、本当に困るものがここから漏れていました。

【続き】.app以外まで数える ── 数字をそのまま読むと間違える

そこで、ファイルの先頭にある Mach-O ヘッダを直接読むスクリプトを書いて、開発ツールやゲームの置き場所を丸ごと数えました。lipo を1ファイルずつ呼ぶと遅すぎるので、先頭の数バイトだけを自分で読んでいます。

def cpus(path):
    with open(path, "rb") as f:
        head = f.read(8)
        magic_be = struct.unpack(">I", head[:4])[0]
        if magic_be in (0xCAFEBABE, 0xCAFEBABF):          # ユニバーサル
            n = struct.unpack(">I", head[4:8])[0]
            if not 1 <= n <= 8:                            # ⚠Javaの.classも同じ4バイト
                return None
            ...                                            # 各アーキのCPU番号を集める
        magic_le = struct.unpack("<I", head[:4])[0]
        if magic_le in (0xFEEDFACF, 0xFEEDFACE):           # 1アーキだけ
            return {struct.unpack("<i", head[4:8])[0] & 0xFFFFFFFF}
# arm64(0x0100000C) を含む → Rosettaが無くても動く
# x86_64(0x01000007) だけ → Rosettaが無いと動かない

⚠つまずきがひとつありました。ユニバーサルの目印 0xCAFEBABE は、Javaの .class ファイルと同じ4バイトです。そのままだと Java の部品を大量に Mach-O と誤認するので、「中のアーキ数が1〜8で、CPU番号が知っているもの」だけを数えるようにしました。

結果です。

場所Mach-OIntel専用割合
Homebrew(/opt/homebrew)2,89070.2%
/usr/local(Intel版Homebrewの置き場)2000%
pyenv の Python1,46330.2%
Java1719857.3%
Unity 6000.6.0f1949747.8%
Unreal Engine 5.714,3503,00620.9%
Steam(本体とゲーム)125108.0%
Whisky の Wine194194100%
Wineskin(Porting Kit)54954899.8%

Unreal Engine の 3,006個が目を引きます。これが全部止まるなら大ごとです。ただ、前の章で決めたとおり、本当に困るのは実行ファイルだけです。そこで、見つけたIntel専用のファイルを種類ごとに分けて数え直しました。種類もMach-Oヘッダの中に書いてあります。

場所Intel専用オブジェクト(.o)ライブラリ実行ファイルうちarm64版が無い
Homebrew70610(テスト用の見本)
pyenv の Python30300
Java980435555
Unity 6000.6.0f1740402717
Unreal Engine3,0062,872795449
Steam100911
Wineskin54805173131
Unreal Engine 5.7 の「Intel専用 3,006個」を分けると Intel専用のファイル 3,006 うち実行ファイル 54(1.8%)── 残り2,872個はビルド途中のオブジェクトファイル arm64版が無い実行ファイル 49(1.6%)★本当に困るのはここ オブジェクトファイル(.o)は組み立て前の部品で、そのまま実行されることはない

3,006個のうち2,872個はオブジェクトファイルでした。組み立て前の部品で、実行されることはありません。本当に困る候補は49個、全体の1.6%です。Homebrew の7個も、Homebrew自身のテスト用の見本ファイルでした。

★「Intel専用のファイルの数」を数えると、困り具合を60倍に見積もってしまいます。数えるべきは「Intel専用の実行ファイル」で、しかも「同じ場所にarm64版が置いてないもの」です。

【続き・切り分け】本当に困るものは何だったのか

残った実行ファイルを1つずつ見ていくと、傾向がはっきりしました。本体はネイティブなのに、付属の道具だけIntel専用というものが多いのです。

どこIntel専用だったもの何に使うか困る場面
JavaTemurin 8(JDK 1.8)が丸ごとJava 8 で動かすもの全般Java 8 に固定しているプロジェクト
Unity 6000.6.0f1
(本体は arm64)
Helpers/LightBaker・JobProcessライトの焼き込み★従来の2方式で焼くとき(次の章で実際に動かしました)
Android NDK の一部Android向けのビルドAndroidアプリを書き出すとき(★同梱のJDKは 6.6 で arm64 になった)
Mono の道具スクリプト関連の補助—(使われる場面は未確認)
Unreal Engine 5.7libimobiledevice(idevice... 22個)iPhone実機への転送・デバッグiOS実機で動かすとき
svn・UnrealAndroidFileTool・Python3(intel64版)バージョン管理・Android転送それぞれの機能を使うとき
VMware Fusionovftool・vctl など仮想マシンの書き出し・コンテナコマンドで操作するとき(本体の起動は別)
Steamhardwareupdaterコントローラなどの更新—(本体 steam_osx はユニバーサル)
Wine(Whisky・Wineskin)ほぼ全部Windowsゲームを動かす★ゲームを起動するたび

【実験2・Unity 6.6】ライトの焼き込みで、本当にRosettaは動くのか

「中に入っている」と「実際に動く」は別です。そこで Unity で実際に焼き込みを走らせました。検証の途中で Unity が 6000.4.5f1 から 6000.6.0f1 に更新されたので、まず2つのバージョンの中身を比べておきます。

6000.4.5f16000.6.0f1
Intel専用のファイル15074
arm64版の無い実行ファイル5217
Android用に同梱された OpenJDKx86_64arm64
UnityRosettaHelper.appあり(x86_64)無くなった
Helpers/LightBaker・JobProcessx86_64x86_64 のまま

★Unity はいままさに移行の途中で、2つのバージョンの間にIntel専用の実行ファイルが3分の1に減っています。それでも、焼き込みの2つはまだ残っていました。

検証用に空のプロジェクトを作り、光源1つと箱・床だけのシーンをエディタのスクリプトで自動的に焼き込んで閉じるようにしました。その間に起動したプロセスを記録し、あわせてmacOSのログでRosettaの動きを見ます。

var s = new LightingSettings { lightmapper = LightingSettings.Lightmapper.ProgressiveCPU,
                               lightmapResolution = 10 };
Lightmapping.lightingSettings = s;
Lightmapping.bakeCompleted += OnDone;     // 終わったら次の方式へ、全部終わったら Exit
Lightmapping.BakeAsync();

⚠画面なしのバッチモード(-batchmode)は、Unity Personal では起動しませんでした('com.unity.editor.headless' was not found)。画面ありで -executeMethod を使っています。

焼き込みの方式を3つ試した結果です。

焼き込みの方式焼いていたプロセスRosetta結果
Progressive CPULightBaker(x86_64)使う成功(6.6秒)
Progressive GPULightBaker(x86_64)使う成功(3.4秒)
Unity Compute GPU(新しい方式)エディタのワーカープロセス(arm64)焼き込み中は使わない成功(35.9秒)

Unity 自身のログにも、はっきり出ていました。

Launching external process: .../Unity.app/Contents/Helpers/JobProcess
[BakePipeline::BakeStage] Background thread started. Calling LightBaker.
Launching external process: .../Unity.app/Contents/Helpers/LightBaker
[BakePipeline::BakeStage] LightBaker bake took 6574.09ms and succeeded.

そして macOS のログでは、LightBaker が起動した直後に、Rosetta の翻訳係 oahd-helper が次の番号で起動していました(LightBaker 65847 → oahd-helper 65848)。Intel専用のものが、Rosettaを通って動いた証拠です。

★Unity 6.6 の答え
従来の Progressive CPU と Progressive GPU は、どちらも Intel専用の LightBaker で焼いていました。Rosettaが無くなると、この2つは起動できません。いっぽう、Unity 6.6 がログで勧めてくる新しい Unity Compute GPU は、arm64 のワーカープロセスで焼いていて、焼き込み中にRosettaは1回も動きませんでした。

ただし、2つ注意があります。

  • ⚠新しい方式でも JobProcess(x86_64)は起動しました。焼き込みの下準備で使われていて、ここはまだ Rosetta 頼みです
  • ⚠新しい方式は com.unity.render-pipelines.core パッケージが必要です。入っていない空のプロジェクトでは Light baking failed with error code 9. で失敗しました

Unity 6.6 は、スクリプトで Progressive CPU を指定すると「非推奨なので Unity Compute GPU を使え」という警告を出します。移行先はもう用意されている、ということです。

初回だけ5分半待たされた

もうひとつ、はっきり差が出たところがあります。同じ焼き込みを2回やると、1回目だけ極端に遅かったのです。

下準備(Layout Systems)Rosettaの翻訳係の起動Rosettaの記録
1回目335.58秒(処理は1.20秒)7回11回
2回目7.05秒0回7回
新しい方式—0回1回(JobProcessの起動だけ)

2回目は、Intel専用の道具が同じように起動しているのに(記録は7回)、翻訳係は1回も起動していません。Rosettaは一度翻訳した結果を保存しておき、次からはそれを使います。1回目の待ちがすべて翻訳のせいとは言い切れません(プロジェクトを初めて開いたときの準備も重なっています)が、「Intel専用の道具は、最初の1回がとても遅いことがある」のは確かです。

⚠記録でひとつ、つまずきました。起動した瞬間のプロセスを vmmap で見ると、LightBaker が「ARM64」と出たのです。自作の x86_64 のプログラムで確かめると、起動した瞬間は ARM64、0.02秒後には X86-64 (translated) でした。Rosettaが翻訳を始める前の一瞬を見ていたわけです。起動直後の見た目は信じないほうがいいです。

【実験3】macOS 26.6 の警告は、本当に出るのか

Appleは「macOS 26.4以降、Rosettaに頼るアプリを起動すると通知が出ることがある」と書いています。「ことがある」なので、実際に試しました。

開いたもの動き方通知
自作のIntel専用アプリ(署名なし・画面なし)翻訳された(oahd-helper が起動)記録は見当たらなかった
App Storeで入れたIntel専用アプリCode Type: X86-64 (translated)出た(画面で確認)

ふつうに配布されているアプリでは、通知は出ました。つまり、ここ最近「このアプリは今後動かなくなります」という通知を見た覚えがあれば、それが自分のMacのRosetta依存の一覧です😅

★もうひとつ、ログを見ていて気づいたことがあります。どちらの場合も、起動した瞬間に ecosystemanalyticsd: Performing rosetta analysis という行が出ていました。macOSは、Rosettaで動いたアプリを記録しています。Appleが「影響するアプリの数」を把握できているのは、こういう仕組みがあるからでしょう。

【ゲーム側】Steam と互換レイヤーはどうなるのか

Macでゲームを遊ぶ人にとって、影響の出方は2通りに分かれます。

Mac版のゲームをSteamで遊んでいる場合

  • Steam本体(steam_osx)はユニバーサルでした。2025年6月のベータから Apple silicon ネイティブになっています
  • このMacに入っている Mac版のゲーム(Endless Sky・Battle for Wesnoth)の本体もユニバーサル
  • ⚠ただしp971で測ったとおり、Steamから起動するとネイティブのゲームでもRosettaで動くことがあります。Rosettaが無くなったときに「arm64で起動し直してくれる」のか「起動できない」のかは、macOS 28が出るまで分かりません
  • ★確かめ方と逃げ道はp986に書きました。.app を直接開くとネイティブで動きます

Windowsのゲームを互換レイヤーで遊んでいる場合

こちらは深刻です。Whisky の Wine は194個中194個、Wineskin は549個中548個が x86_64でした。Macで配られてきた無料のWineは、ほぼすべてRosettaの上で動いています。

  • Whisky は開発が終わっています(p956)。Apple silicon 版が出る見込みはありません。⚠2026年9月時点では、初回に取りに行くWine一式の配布も止まっています。入れてある人は、Wine一式(Libraries フォルダ)を消さないでください(Whiskyの使い方とインストール手順)
  • Porting Kit(p989)は Wineskin を使うので、同じく x86_64 です
  • 有料の CrossOver 27 は ARM64 ネイティブ版を試験中です。報道では2027年初めの予定で、Intel Mac と32bitは切り捨て。いまのプレビューには「D3DMetal が無い」「ゲームランチャーが動かない」「既存のボトルを ARM64 へ移せない」という制限があります
  • ⚠Appleの「古いゲーム向けにRosettaを残す」に、Wineのような互換レイヤーが含まれるかは公表されていません

互換レイヤーで遊んでいる人がいまやるべきこと
CrossOver 27 のプレビューで「既存のボトルを移せない」とされている以上、乗り換えるときは作り直しになる前提で考えたほうが安全です。いまのうちにセーブデータと設定だけを退避しておきましょう。22GBのボトルでも、持ち出すべきものは数MBでした(p985)。

【開発環境側】Homebrew・Python・Node・Java を確かめる

開発ツールは、自分でコマンドを叩いて確かめられるのが救いです。このMacの結果と、確かめるコマンドを並べます。

道具このMac確かめ方
Homebrew/opt/homebrew(arm64)。/usr/local に Intel版は無しbrew --prefix が /usr/local なら Intel版
Python(pyenv)3.10・3.11・3.12 すべて arm64lipo -archs ~/.pyenv/versions/*/bin/python3.*
Node26.0.0 arm64lipo -archs "$(command -v node)"
Dockerarm64同上
git・clang・rubyユニバーサル(macOS付属)—
Java21 は arm64、8 は x86_64/usr/libexec/java_home -V

Java だけは、macOS がアーキまで表示してくれます。

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    21.0.2 (arm64) "Eclipse Adoptium" - "OpenJDK 21.0.2" ...
    1.8.0_302 (x86_64) "Eclipse Temurin" - "Eclipse Temurin 8" ...

Java 8 を「Rosettaが無い状態」で起動すると、予想どおり止まりました。

$ arch -arm64 /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/bin/java -version
arch: posix_spawnp: .../temurin-8.jdk/Contents/Home/bin/java: Bad CPU type in executable

ただし、名前だけで java を呼ぶと 21(arm64)が選ばれていたので、困るのは Java 8 に固定しているプロジェクトだけです。

では置き換えられるのか。配布元のAPIに問い合わせると、配布元によって答えが違いました。

配布元Java 8 の macOS arm64 版
Eclipse Temurin(Adoptium)無い(x64 だけ。最新は 1.8.0_504)
Azul Zuluある(8.0.504)

★「Java 8 だから置き換えられない」ではなく、「Temurin 8 だから置き換えられない」でした。配布元を変えれば済みます。

【整理】いまやること ── 優先度つき一覧

ここまでの結果を、手を付ける順番に並べました。

手を付ける順番 ① 確かめる 通知が出たアプリを思い出す システムレポートの「種類」 開発ツールは lipo で ★.app以外も見る いま動いているものを 見ても分からない ② 置き換える アプリを最新版に Java 8 は配布元を変える Intel版Homebrewは /opt/homebrew へ ★いちばん効果が 大きいのはここ ③ 逃げ道を決める 置き換えのない道具は macOS 27に留まるか 提供元の対応を待つか 別の道具に移るか Unity・UEの付属道具は ここに入る ④ 退避する Wineで遊んでいる ゲームのセーブと 設定を持ち出す ボトルは移せない 前提で考える
優先こんな人やること期限の目安
高Whisky・Porting Kit で Windows ゲームを遊んでいるセーブと設定を退避(p985)。CrossOver 27 や、ゲームのMac版があるかを調べておくmacOS 28 に上げる前
高Java 8 に固定したプロジェクトがあるarm64 版のある配布元(Azul Zulu など)へ入れ替えるいつでも(すぐ済む)
中Unity で Progressive CPU / GPU の焼き込みを使っているUnity Compute GPU に切り替える(com.unity.render-pipelines.core が要る)。下準備の JobProcess はまだ残るので、Unity の更新も追うmacOS 28 に上げる前
中Unity / UE で Android・iOS 実機向けに書き出すUnity は 6.6 で Android用JDKが arm64 になったが、NDKの一部が残る。UE は iPhone 実機用の道具が Intel専用。エンジンの更新を追うmacOS 28 に上げる前
中「動かなくなる」通知が出たアプリがある最新版に更新。開発が止まっているなら代わりを探すmacOS 28 に上げる前
低Mac版のゲームを Steam で遊んでいるSteam本体とゲームはユニバーサル。気になるなら .app を直接開く(p986)macOS 28 が出てから確かめる
低Homebrew・Python・Node をふつうに使っているこのMacでは全部 arm64 だった。/usr/local に Intel版が残っていないかだけ見る—

★いちばん確実な逃げ道は、macOS 27 に留まることです。どのページの書き方でも、27 で Rosetta が全部消えるとはされていません(9月9日の開発者ニュースを除く)。急いで 28 に上げなければ、少なくとも2027年秋までは今までどおり動きます。

【手順】自分のMacで確かめる

1. .app を一覧にする

system_profiler SPApplicationsDataType -json \
 | python3 -c 'import json,sys
d=json.load(sys.stdin)["SPApplicationsDataType"]
for a in d:
    if a.get("arch_kind")=="arch_i64": print(a["_name"], "-", a["path"])'

2. 気になるファイルのアーキを見る

lipo -archs /path/to/file      # ★1回に1ファイルだけ(複数渡すとエラー)
#   arm64 / arm64e が入っていれば大丈夫。x86_64 だけなら止まる

3. Rosettaが無い状態を再現する

arch -arm64 /path/to/command --version
#   Bad CPU type in executable と出たら、Rosettaが無いと動かない

⚠画面のあるアプリにはやらないでください。起動してしまうと、放置していたアプリほど自動更新が走ることがあります。コマンドの道具で試すのが安全です。

4. いま翻訳中のプロセスを見る

for p in $(pgrep -x "アプリ名"); do vmmap "$p" | grep "Code Type"; done
#   X86-64 (translated) なら Rosetta で動いている

5. フォルダを丸ごと数える

開発ツールやゲームの置き場所をまとめて調べるなら、この記事で使ったやり方がそのまま使えます。要点は3つです。

  • ファイル先頭の Mach-O ヘッダでアーキを判定する(0xCAFEBABE は Java の .class と区別する)
  • 同じヘッダの filetype を読んで、実行ファイル(2)だけを数える(オブジェクトファイル(1)やライブラリ(6)は後回し)
  • 同じ場所に arm64 版が並んでいないかを見る(x86_64 → arm64 と名前を読み替えて探す)

つまずき集

症状原因と対処
★★Bad CPU type in executable で起動しないIntel専用のプログラムを、Rosettaが無い状態で起動した。Apple silicon 版に入れ替えるしかない
★アクティビティモニタで「Intel」が1つも無いのに、通知が出たRosettaは起動したときだけ現れる。いま動いていないものは見えない。システムレポートの「種類」列で探す
★「Intel専用のファイルが3,000個」と出て青ざめたほとんどがオブジェクトファイル(.o)だった。実行ファイルだけを数え直す
ネイティブのアプリの中に x86_64 のライブラリが入っているネイティブのプロセスはそもそも読み込めないので、ふだんは使われていない。Rosettaで起動されたときだけ使われる
Mach-O を数えたら、Java の中身が大量に引っかかった0xCAFEBABE は Java の .class と同じ。アーキ数(1〜8)とCPU番号で弾く
lipo -archs a b がエラーになる-archs は1ファイルずつしか受け付けない
zsh で log show を打ったら「too many arguments」⚠zsh には log という同名の組み込みコマンドがある。/usr/bin/log show とフルパスで呼ぶ
★Intel専用のはずのプロセスが vmmap で「ARM64」と出る起動した瞬間を見ている。0.02秒後には X86-64 (translated) になる。少し待ってから読む
Unity で Unity Compute GPU の焼き込みが error code 9 で失敗com.unity.render-pipelines.core パッケージが入っていない(ログに Failed to find LightBakerWorkerProcessImporter...)
Intel専用の道具を初めて使ったら、何分も固まったRosetta が初回だけ翻訳している可能性がある。2回目から速くなる
Unity をバッチモードで起動したら終了コード198Unity Personal では画面なしのバッチモードが使えない(com.unity.editor.headless が無い)
Java 8 の arm64 版が見つからないTemurin には無い。Azul Zulu などほかの配布元にはある

まとめ

  • ★いま(2026年9月)はまだ全部動く。Appleのサポート記事では、Rosettaが全面的に使えるのはmacOS 27まで、macOS 28(2027年秋の見込み)からは更新の止まった古いゲーム向けだけ
  • ⚠★Apple自身のページが食い違っている。9月9日の開発者ニュースだけは「Rosettaは26まで」と読める。訂正は出ていない
  • ⚠「ゲーム向けに残す」の中身は未公表。Wineのような互換レイヤーが含まれるかは分からない
  • ★★Rosettaはプロセス単位。ネイティブのプロセスは x86_64 のライブラリを読み込めない(incompatible architecture)。だから本当に困るのはIntel専用の実行ファイルだけ
  • Rosettaが無いときのエラーは Bad CPU type in executable。arch -arm64 を付けると、Rosettaを消さずに再現できる
  • ★いま動いているプロセスを見ても分からない。547個中、翻訳中は0件だった
  • ⚠システム情報の一覧は.appしか数えない。476本中Intelだけは11本だったが、開発ツールの中身はここに出てこない。しかもその11本には、Intel Mac向けに書き出すための型紙のような、このMacでは動かさないものも混ざる
  • ★★ファイルの数で数えると60倍に見積もる。Unreal Engine の「Intel専用3,006個」のうち2,872個はオブジェクトファイルで、arm64版の無い実行ファイルは49個(1.6%)だった
  • 本当に困るのは、本体はネイティブなのに付属の道具だけIntel専用というもの。Unity の焼き込み、UE の iPhone 実機用の道具、そして Java 8
  • ★★Unity 6.6 で焼き込みを実際に動かすと、Progressive CPU と GPU はどちらも Intel専用の LightBaker で焼いていた(Rosettaの翻訳係の起動も確認)。新しい Unity Compute GPU は arm64 のワーカーで焼き、焼き込み中のRosettaは0回。ただし下準備の JobProcess は x86_64 のまま
  • ★Unity は 6.4 → 6.6 で Intel専用の実行ファイルが 52 → 17。Android用JDKは arm64 になった。いままさに移行の途中
  • ★Intel専用の道具は最初の1回が極端に遅いことがある(下準備が 335秒 → 2回目 7秒)。2回目は Rosetta の翻訳係が起動せず、翻訳済みの結果が使われていた
  • ★Wine はほぼ全部 x86_64(Whisky 194/194、Wineskin 548/549)。CrossOver 27 の ARM64 版は2027年初めの予定だが、既存のボトルは移せないとされている
  • ★Java 8 は「置き換えられない」ではなく「Temurin 8 だから置き換えられない」だった。Azul Zulu には arm64 版がある
  • macOS 26.6 では、App Storeで入れたIntel専用アプリを開くと通知が出た。そしてmacOSはRosettaで動いたアプリをログに記録している

終わりが近いと聞くと全部が止まるように思えますが、数えてみると、本当に困るものはずっと少なく、しかもどこにあるかをコマンドで特定できました。いちばん怖いのは、ふだん見えない場所にある付属の道具が、ある日いきなり起動しなくなることです。いまのうちに一度、自分のMacを数えておくのがおすすめです😊

それでは、今回はここまで。最後までありがとうございました😊

参考サイト