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」です。
スクリプトはgistとして登録してありますので。こちらもどうぞ。
まとめ
macOSインストーラーのバージョン番号、ビルド番号を取得する方法を説明しました。クリーンインストール時や、インストールメディアを作成する前にバージョンを確認しておくと安心です。