もっと詳しく

S 20220112 142814

AppleのMac用オペレーティングシステム「macOS」は、サポート対象のMacを所有している場合、無償で最新バージョンにアップグレードすることができます。

最新版のmacOSはソフトウェアアップデート機能を利用し、「macOS Montereyインストール.app」のようなインストーラーアプリを利用してインストールすることができますが、インストールしようとしているmacOSの正確なバージョン番号やビルド番号を事前に知りたい場合があると思います。

最新版をインストールしないと、インストール後に再度アップデートする必要があり二度手間になる場合があるからです。

以下macOSのインストーラーアプリでインストールできるmacOSのバージョンやビルド番号を取得する方法を説明します。

Big Sur以降で変更

今回参考にさせて頂いたブログ記事「What macOS version did I just download? (Big Sur edition)」によると、macOSのインストーラーアプリからバージョンを取得する方法はBig Sur以降で変更されており、以前使えた方法が使えなくなっているようです。

概要を説明すると、インストーラーアプリの中に含まれるSharedSupport.dmgをマウントし、そこに含まれるxmlファイルからバージョン番号、ビルド番号を読み取ります。dmgファイルをマウントするためにhdiutilを使用し、バージョン番号を読み取るためにPlistBuddyを使用します。

例えば、以下のシェルスクリプトをmaOSInstallerVersion.shとして保存します。

if [ $# -ne 1 ]; then
    echo "Please specify path to macOS Install application."
    exit 1
fi

installer_path="$1"

#echo "attach ${installer_path}"
hdiutil attach -noverify -quiet "${installer_path}/Contents/SharedSupport/SharedSupport.dmg"

xml_path="/Volumes/Shared Support/com_apple_MobileAsset_MacSoftwareUpdate/com_apple_MobileAsset_MacSoftwareUpdate.xml"
os_version=$(/usr/libexec/PlistBuddy -c "Print :Assets:0:OSVersion" "$xml_path")
build=$(/usr/libexec/PlistBuddy -c "Print :Assets:0:Build" "$xml_path")

echo "OS Version: ${os_version} (${build})"

#echo "detach ${1}"
hdiutil detach -quiet "/Volumes/Shared Support"

次のように実行します。

./macOSInstallerVersion.sh /Applications/Install\ macOS\ Monterey.app
OS Version: 12.1 (21C52)

この場合OSバージョンが「12.1」、ビルド番号が「21C52」です。

S 20220112 143030

スクリプトはgistとして登録してありますので。こちらもどうぞ。

まとめ

macOSインストーラーのバージョン番号、ビルド番号を取得する方法を説明しました。クリーンインストール時や、インストールメディアを作成する前にバージョンを確認しておくと安心です。