macOS Big Surでアプリやスクリプトが起動しない場合の対処法

macOS Big Surはバージョンが従来の10.xから11に変更、一部のkextが無効、更にはプロテクトも強固になっており、一部のアプリやスクリプトはエラーが出て正常に起動しないことがあるため対処法を紹介する。

macOS Big Sur互換性対処法

macOS Big Surのコンパチブルモードで起動する

下記のコマンドをターミナルで実行してコンパチブルモード(互換性モード)でアプリケーションやスクリプトを開く。

SYSTEM_VERSION_COMPAT=1 open -a "アプリケーション・スクリプト名"

例えば以前まではParallels DesktopはmacOS Big Sur Betaで起動不可だったが下記のコマンドでコンパチブルモードに指定して起動すれば動作の保証はされないが起動するようになった(現在のParallels Desktopは何もせずとも正常に起動する)。

SYSTEM_VERSION_COMPAT=1 open -a "Parallels Desktop"

またPythonスクリプトなどの場合は下記のようになる。

SYSTEM_VERSION_COMPAT=1 open -a "script.py"

注意点としてこの方法でアプリケーションやスクリプトを無事に開けたとしてもアプリケーションやスクリプトを起動するたびに上記コマンドを実行する必要がある。

元のアプリケーションやスクリプトがmacOS Big Surに対応しない限り解決しない問題なので、アプリケーションやスクリプトのデベロッパーにコンタクトが取れるならBig Surへの対応要望を出してみるのも手だ。

plistを書き換えてアプリケーションのバージョンチェックをバイパスする(リスク高)

アプリケーションによってはplistファイルからmacOSが実行されているバージョンを読み取ることがあるため、下記のplistファイルをXcodeなどで開いてmacOSのバージョンを書き換えることでアプリケーションのバージョンチェックを誤魔化すことができる。

ただし、広範なアプリケーションやシステムに影響を及ぼす可能性がある点に注意。

管理人の実験では少なくともLiteIconは下記方法で起動可能。

/System/Library/CoreServices/SystemVersion.plist
バージョンを10.15(Catalinaのバージョン)などに書き換える
/System/Library/CoreServices/SystemVersionCompat.plist
バージョンを11.0.1から10.15.xなどに書き換える

macOS Big Surで起動するとMacごとシステムがクラッシュする場合、アプリの設定を変更する

macOS Big Surでアプリケーションを起動したり、あるいは設定を変更した際に有無を言わさずMacがクラッシュして再起動する場合がある。

この場合はmacOS Big Surのレガシーkextの非サポートが原因の可能性が高いためアプリケーションによって対応法が違ってくる。

macOS Big Surでのkextの仕様は下記記事でまとめている。

あまり知られていないmacOS Big Sur以降で利用不可になるkext

もしParallels Desktopなどで仮想マシンを起動すると即座にクラッシュする場合は「構成」>「CPUおよびメモリ」>「詳細設定」で「Hypervisor」を「Apple」に変更する。

Parallels Desktopの場合は最新版に更新したり、Hypervisorの設定を切り替えることで正常に起動できるようになる。

SIPに加えてSSVも無効にする

macOS Big Surではプロテクトが強化されているため、場合によってはSIP(System Integrity Protection)に加えてSSV(Signed System Volume)も無効にする必要がある。

起動時にCommand+Rキーを長押ししてmacOS Big Surをリカバリーモードで起動し、ターミナルから下記コマンドを実行してSIPを無効にする。

csrutil disable

続いて下記コマンドでSSVを無効にする。

csrutil authenticated-root disable

実行したらmacOS Big Surを通常起動しアプリケーションやスクリプトが起動するようになったか確認する。

SIPを再度有効にするには下記コマンドを実行する。

csrutil enable

SSVを再度有効にするには下記コマンドを実行する。

csrutil authenticated-root enable

なお、SIPとSSVを常に無効にしておくのはセキュリティ的に危険なため、出来ればデベロッパーの対応を待った方がいい。

ちなみに次回のmacOSの起動をリカバリーモードで起動する下記のコマンドはmacOS Big Surでは無効になった(SIPを無効化すれば実行できるがSIPを無効にする必要があるならCommand+Rキーで普通にリカバリーモードに入った方が早い)。

このコマンドはBig Surではプロテクトにより通常では実行不可
sudo nvram "recovery-boot-mode=unused"

上記のようなコマンドをどうしても実行したい場合、下記記事の方法でSIPの部分無効化を行う手もある(この場合もセキュリティ的にリスクはある)。

NVRAMなど特定のコンポーネントのみSIPを無効にする方法

macOS Big Surへのアップデートが不安な場合、様子見する

もし古いアプリケーションを使用していたり、プロテクトによりアプリケーションやスクリプトの実行で問題が生じる可能性があるのならばmacOS Big Surリリース直後はアップデートせず、使用しているアプリケーションやスクリプトのmacOS Big Surへの対応を待った方がいいかもしれない。

コメントを残す

メールアドレスが公開されることはありません。