Catalina / BigSurでSPM12を動かす時のエラー対処法【MATLAB】


はじめに

macOScatalinaで、MATLAB2020SPM12を使って、MRIのVBM解析をしたかった時に、以下のようなエラーが出てきました。また、最近、bigsurMATLAB2021との組み合わせでも同様のエラーが起きたため、対処法を以下に追記しました(2021/05/13更新)。

Catalinaのエラー

  • “spm_bsplins.mexmaci64”は、開発元を検証できないため開けません。
  • "spm_existfile.mexmaci64"は、開発元を検証できないため開けません。

よくあるエラーなのですが、いつも通り設定からpermissionをしても、毎回聞かれるというエラーループに入ってしまいました。

mojaveの時はうまく動いていた上、セキュリティ関連のエラーだったため、catalinaにしたことが原因だと気付きました。

Big Surのエラー

  • “spm_bsplinc.mexmaci64”は、開発元を検証できないため開けません。
  • “spm_bsplinc.mexmaci64” cannot be opened because the developer cannot be verified.macOS cannot verify that this app is free from malware.
  • Code signature not valid for use in process using Library Validation: library load disallowed by system policy
  • Invalid MEX-file '/xxx/spm_bsplins.mexmaci64': dlopen(/xxx/spm_bsplins.mexmaci64, 6): no suitable image found.
  • code signature in (/xxx/spm_bsplins.mexmaci64) not valid for use in process using Library Validation: library load disallowed by system policy
  • Error using spm_check_installation>check_basic (line 182)
  • SPM uses a number of MEX files, which are compiled functions. These need to be compiled for the various platforms on which SPM is run. It seems that the compiled files for your computer platform are missing or not compatible. See https://en.wikibooks.org/wiki/SPM/Installation_on_64bit_Mac_OS_(Intel) for information about how to compile MEX files for MACI64.

対処法

まずspm12のフォルダへcdして、そこで以下のようなコマンドを入力したら、うまくいきました。
.mexmaci64ファイルの権限の問題のようでした。

Catalinaの場合

find . -name "*.mexmaci64" -exec xattr -d com.apple.quarantine {} \;

Big Surの場合

以下の/xxx/spm12にはあなたの環境のSPMのPATHに変更して、実行してみてください。
パスワードを求められるかもしれませんが、その際は、パソコンへのログインパスワードを入力しましょう。

SPM_PATH='/xxx/spm12'
sudo xattr -r -d com.apple.quarantine $SPM_PATH
sudo find $SPM_PATH -name \*.mexmaci64 -exec spctl --add {} \;

セキュリティ設定の許可について

以下のように「セキュリティとプライバシー」の画面からspm_bsplinc.mexmaci64の許可をしないとエラーが出続けると思うため、こちらの許可もお忘れなく。

以上の許可をすると、以下のように開くことができます。

CAT12のエラー

  • CAT12と言われるSPMのtoolboxにおいても同様のエラーが出現します。
  • エラー文
    • “cat_vbdist.mexmaci64”は、開発元を検証できないため開けません。
    • One or multiple files do not exist and were removed from the dependency list and following batches will may not work correctly!
  • 対処法:上述したCatalinaとBig Surそれぞれの対処法で解消されます。

最後に

備忘録的なメモ書きですが、どこかの誰かの役に立てば幸いです。

ちなみに、私は脳波とMRIのデータを解析して、ニューロリハビリテーションへの応用研究を行っております。
ご興味のある方は、ぜひtwitterで繋がりましょう👍

参考文献