2026年7月、macOS 27「Golden Gate」のパブリックベータが今月やってきます。このバージョンでApple SiliconではないMacは切られ、そして Rosetta 2 が提供される最後のmacOS でもあります。AAPL Ch.の記事によれば、次の macOS 28 では、Intelベースのフレームワークに依存する一部の古いゲームを除き、Intelアプリは動かなくなります。時期は2027年末とされていて、まだ猶予はあります。
猶予はあるのですが、厄介なのは 「今ちゃんと動いているアプリが、実はIntel専用かどうか」は見た目では分からない ことです。Rosetta 2 がある今は、Intelアプリも黙って動いてしまう。だから期限が来て初めて気づく、という取りこぼしが起きます。
先に、やることだけ書きます。
- 1本のアプリを見る:
lipo -archs /Applications/アプリ名.app/Contents/MacOS/実行ファイル名。arm64が含まれていればネイティブ、x86_64だけならIntel専用。 - まとめて見る:
system_profiler SPApplicationsDataTypeに各アプリの「種類(Apple Silicon / Intel / ユニバーサル)」が出る。ここからIntelだけ拾う。 - コマンドが苦手なら: GUIの Rosetta Check でアプリを一覧判定できる。
- 見つけたら: ネイティブ版へ更新するか、代替アプリへ乗り換える。
以下は、私が実際に自分のTahoe機で棚卸ししたときの手順と、途中で気づいた落とし穴です。
第一部: 素朴に確認して、取りこぼした話
アプリが動く=ネイティブ、ではない
最初は「起動して普通に使えているんだから、たぶん大丈夫だろう」と思っていました。これが間違いです。Rosetta 2 は裏でIntelコードをその場で変換していて、ユーザーからは境目が見えない。動いていることは、ネイティブである証拠になりません。 期限まで気づけない典型がこれです。
本体はUniversalでも、中だけIntelのことがある
もうひとつ気になったのが、アプリ本体はApple Silicon対応でも、内部のプラグインやヘルパー、フレームワークだけがIntelのまま というケースです。個人ブログのカスタム/CUSTOM/でいこうでは、Rosetta Checkで調べたら本体ではなく内部コンポーネントの一部がIntelベースと表示された、という報告がありました。PhotoshopやPro Tools、Logic Proのようにプラグインを積むアプリで起きやすいとされます。
気になったので、手元のUniversalアプリを何本か中まで掘ってみました。結果は第二部に載せますが、内部までクリーンなアプリもあれば、本体はネイティブなのに裏方のツールやカーネル拡張だけがIntelで残っているアプリもありました。「種類: ユニバーサル」という表示だけでは足りず、確認は アプリ単位ではなくバイナリ単位 で、しかも 中身まで 見ないと取りこぼす、というのがここの学びです。
空欄は「Intel」ではない
もう一つ、やって初めて分かった罠があります。一括で洗い出すと、Google ドキュメントやスプレッドシートのような Webアプリのショートカットは、アーキテクチャが空欄で出ます。これはIntelではなく、そもそもMach-Oの実行ファイルを持たないからです。Intel専用だけを抜き出すつもりで空欄を除外しないと、これらが紛れ込みます。ここは後で対策込みのコマンドを載せます。
第二部: コマンドで棚卸しする
file と lipo で1本を判定する
まず対象のアプリの実行ファイルに file をかけます。
|
1 |
file /Applications/アプリ名.app/Contents/MacOS/実行ファイル名 |
Mach-O 64-bit executable arm64 ならネイティブ、x86_64 だけならIntel専用、universal binary with 2 architectures なら両対応です。アーキテクチャだけを手早く見たいなら lipo が読みやすい。
|
1 |
lipo -archs /Applications/アプリ名.app/Contents/MacOS/実行ファイル名 |
出力が arm64 だけならネイティブ、x86_64 だけなら要対応、x86_64 arm64 ならUniversalです。下の図がその3パターンの早見になります。
実行中にRosettaで動いているものを見る
すでに起動しているプロセスがRosettaで走っているかは、アクティビティモニタの「種類」列で分かります。Intel と表示されていれば、それは変換されて動いています。
ターミナルなら、自分のシェルが変換下にあるかを次で確認できます。
|
1 |
sysctl -n sysctl.proc_translated |
arch -arm64 /Applications/アプリ名.app/Contents/MacOS/実行ファイル名 で起動を試して、弾かれるならネイティブでは動けない、という判定にも使えます。
/Applications をまとめて洗い出す
一本ずつでは日が暮れるので、一覧で見ます。いちばん手軽なのは system_profiler です。
|
1 |
system_profiler SPApplicationsDataType | grep -B 3 "種類: Intel" |
各アプリに「種類: Apple Silicon / Intel / ユニバーサル」が付くので、Intelのものだけを前後の行ごと引っ張れます。英語環境なら Kind: Intel に読み替えてください。より確実にバイナリを見たいなら、lipo で全アプリを回して arm64 を含まないものだけ出します。アプリ名と実行ファイル名がずれることがあるので、Info.plist の CFBundleExecutable から実行ファイルを引きます。
|
1 2 3 4 5 6 7 8 9 10 |
for app in /Applications/*.app; do exe=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleExecutable' "$app/Contents/Info.plist" 2>/dev/null) bin="$app/Contents/MacOS/$exe" [ -f "$bin" ] || continue archs=$(lipo -archs "$bin" 2>/dev/null) case "$archs" in *arm64*|"") ;; *) printf '%-42s %s\n' "$(basename "$app" .app)" "$archs" ;; esac done |
*arm64*|"" の一行で、arm64を含むものと、実行ファイルを持たない空欄(さっきのWebアプリ)をまとめて外しています。ひとつ実地の注意で、この手のスクリプトを対話中のzshに貼るとき、行内に日本語の # コメントを混ぜると parse error になります。zshの対話シェルは既定でコメントを解釈しないためで、setopt interactive_comments を打つか、コメントを消してから貼ってください。私はこれで一度落としました。
実際に自分のMacで回すと、インストール済みのアプリはほとんどがarm64ネイティブで、Intel専用(x86_64のみ)だったのは次の4本だけ でした。
|
1 2 3 4 |
MISO-J x86_64 PicGIF Lite x86_64 SurFlex Screen Recorder x86_64 Uni Detector x86_64 |
いちばん皮肉だったのが Uni Detector です。アプリがApple Silicon / Intel / Universal のどれかを調べる、まさにこの記事でやっていることを担うチェッカーなのに、そのチェッカー自身がIntel専用でした。macOS 28では、アーキテクチャを確かめる古い道具のほうが先に動かなくなる。一方、新しい Rosetta Check はarm64ネイティブで入っていて、道具の世代交代がそのまま出ていました。
ついでに前に書いたMountain Duckを見たら x86_64 arm64 のUniversalで、本体はApple Silicon時代を越えられる側でした。
中まで掘る
本体がUniversalでも内部にIntelが残っていないか、アプリ内の全Mach-Oを走査して確かめます。
|
1 2 3 4 5 6 7 8 9 |
app="/Applications/対象アプリ.app" find "$app" -type f | while read -r f; do file "$f" | grep -q "Mach-O" || continue archs=$(lipo -archs "$f" 2>/dev/null) case "$archs" in *arm64*|"") ;; *) echo "[Intelのみ] $archs ${f#"$app"/}" ;; esac done |
Universalの代表としてDropboxにかけたら、何も出ませんでした。内部のヘルパーやフレームワークまで全部arm64で、掘ってもクリーン。ところがParallels Desktopで同じことをすると、様子が違いました。
|
1 2 3 4 5 6 |
[Intelのみ] x86_64 Contents/MacOS/prl_disk_tool [Intelのみ] x86_64 Contents/MacOS/prl_convert [Intelのみ] x86_64 Contents/MacOS/prl_mkiso [Intelのみ] x86_64 Contents/MacOS/libMonitor.dylib [Intelのみ] x86_64 Contents/Frameworks/libDaApiWrap.1.dylib [Intelのみ] x86_64 Contents/Library/Extensions/10.9/prl_hypervisor.kext/Contents/MacOS/prl_hypervisor |
Parallels Desktopの本体は、第二部の一覧では x86_64 arm64 のUniversalでした。ネイティブ側に見えます。なのに中を掘ると、仮想ディスクを扱う prl_disk_tool や prl_convert、内部ライブラリの libMonitor.dylib、そして prl_hypervisor.kext というカーネル拡張までがx86_64専用でした。本体はApple Silicon対応でも、実際に手を動かす裏方がIntelのまま残っている。これが第一部で書いた「中だけIntel」の実物です。
つまり、アプリ一覧の「種類: ユニバーサル」だけを見て安心はできません。Dropboxのように内部までネイティブなアプリもあれば、Parallelsのように裏方だけIntelが残るアプリもある。この層はアプリ単位のチェックでは絶対に出てこないので、心当たりのあるアプリは find で一度掘っておくと安心です。
GUIで照合するなら Rosetta Check
コマンドが面倒、あるいはCLIの結果を裏取りしたいなら、Rosetta Check というアプリがあります。AAPL Ch.によると、開発者はMicrosoftでIntune開発に携わるNeil Johnson氏。アプリのフレームワークを調べて Apple Silicon / Intel / Universal Binary のどれかを一覧化し、Intelアプリには代替をAIで提案する機能まで付きます。要件はmacOS 13 Ventura以降のApple Silicon Macで、日本語にもローカライズ済みです。
CLIとの使い分けはこうです。lipo と find を組み合わせれば内部まで正確に見られますが、アプリごとに一本ずつ回すのは骨が折れる。Rosetta Checkは、その 内部の層まで含めて一覧でまとめて拾ってくれる のが強みで、手数が段違いです。私のように4本しか出ないと分かっている場合はCLIで十分ですが、心当たりが多い人は、まずRosetta Checkで全体を眺めてから、気になったものをCLIで裏取りする順番が速いです。
ひとつ注意です。価格は変わります。 AAPL Ch.の掲載時点では2026年6月末まで無料という案内でしたが、これはもう過ぎているので、導入前に現在の価格を確認してください。余談ですが、Universal Binaryチェッカーとしては古参のUni Detectorもあり、こちらはPPCまで見られる代わりに、ここ数年更新が止まっているようです。
見つけたあとにやること
x86_64専用だと分かったら、順番はこうです。まず開発元がApple Silicon版を出していないか確認して更新する。出ていなければ代替アプリへ移る。放置が長いアプリほどネイティブ対応は期待しにくいので、早めに代替の当たりを付けておくほうが安全です。ちなみにGoogleが公開を終了したAndroid File TransferはApple Silicon非対応で、こういう「もう更新されない」ものは代替一択になります。
macOS 27 のパブリックベータは今月配信、正式版は今秋。Rosetta 2 がまるごと外れるのはその次のmacOS 28で、予定は2027年末です。
参考: AAPL Ch.(Rosetta Check / Rosetta 2)、Apple サポート「Appleシリコン搭載のMacでIntelベースのアプリを使用する」、rosettacheck.com










コメント