Apple シリコン Mac で、アプリがネイティブか intel かを確認する
M1 チップ搭載の MacBook Air 2020 を買いまして。
これなんですか? 革命的とかいわれてるんですか?
わたしの買った一番安い MacBook Air が? 一線を画する歴史的名機、とか世間でいわれちゃってるんですか? 確かにすごくパワフルで、そのわりに物静かなマシンかと思いますが、なんですか? 世間ではゲームチェンジャーとまで評価されちゃってるんですか?
知らなかったなぁ。
それはともかく、Apple 謹製の M1 チップとやらになり、アーキテクチャとやらが x86 から Arm とかいうのになった。以前のインテルで動いていたアプリは Rosetta 2 とかいうもんで翻訳されて、すべてではないらしいがほとんど動く。
アプリが Apple シリコンに最適化、ユニバーサル化されているかを確認する方法はいくつかある。
アクティビティモニタ
起動中のアプリは「アプリケーション」>「ユーティリティ」内にある「アクティビティモニタ.app」で、intel か Apple シリコンかを確認できる。
アーキテクチャ、という項目が追加されていて「Apple」か「intel」かで判断できる。
情報を見る
単純に、ファインダーで目的のアプリを選択し、右クリックメニューの「情報を見る」を実行すれば、「intel」か「Universal」かを確かめられる。
いわずと知れたこととは思うが、「情報を見る」はキーボード・ショートカットの [Command] + [ i ] が便利だ。
アーキテクチャを確認するアプリ
AAPL Ch. さんで知ったのだが、アーキテクチャを調べる「Silicon」というアプリがあるらしい。
ダウンロードはこちら。
🔗 Releases · DigiDNA/Silicon · GitHub
起動するとあらわれるウィンドウ内の、「Start Scanning」ボタンを押せば、アプリケーション・フォルダ内のアプリをスキャンしてくれる。
または、調べたいアプリをウィンドウ内にドロップしてもいいらしい(アプリケーション・フォルダ内のアプリはドロップできないが)。
lipo コマンド
これまた AAPL Ch. さんで知った。
🔗 利用しているアプリがApple Silicon搭載のMacでネイティブ動作するUniversal 2対応アプリかを確認する方法。 | AAPL Ch.
「lipo」というコマンドに「-archs」というオプションをつけることで、アプリのアーキテクチャを調べられる。
ただし、アプリを右クリックして「パッケージの内容を表示」を実行し、「Contents」>「MacOS」内にある、プログラム本体みたいなやつをドロップしなくちゃならない。
% lipo -archs /System/Applications/Notes.app/Contents/MacOS/Notes
x86_64 arm64e
メモ帳の、パッケージ内のプログラムを調べると、上のようになる。
いちいちパッケージを開くのはわりとダルいので、シェルスクリプトを書いてみた。
📝 fat.sh
#!/bin/zsh
if test -z "$1"; then
exit 0
fi
if ! echo "${1}" | grep -sq ".app$"; then
exit 0
fi
prog=$(echo "$1:t:r")
lipo -archs $1/Contents/MacOS/$prog
fat.sh
のあとに半角スペースを入れ、アプリ本体をドロップして使う。
% fat.sh /Applications/KeepingYouAwake.app
x86_64 arm64
みたいな感じ。
ディスカッション
ピンバック & トラックバック一覧
[…] 「Apple シリコン Mac で、アプリがネイティブか intel かを確認する | 林檎コンピュータ」を参考にした。 […]