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

はじめまして、ますみです！

[![自己紹介.png](https://www.umi-mori.jp/wp-content/uploads/2023/02/introduction_banner_2-2048x533.png)](https://bit.ly/banner_intro_masumi_creator_qiita)


# 背景
`macOS`の`catalina`で、`MATLAB2020`と`SPM12`を使って、MRIのVBM解析をしたかった時に、以下のようなエラーが出てきました。また、最近、`bigsur`と`MATLAB2021`との組み合わせでも同様のエラーが起きたため、対処法を以下に追記しました（2021/05/13更新）。

## Catalinaのエラー
- `“spm_bsplins.mexmaci64”は、開発元を検証できないため開けません。`
- `"spm_existfile.mexmaci64"は、開発元を検証できないため開けません。`

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240280/26064288-28df-42de-a326-55f32b92a869.png" alt="error_dialog.png" width="500px"/>

よくあるエラーなのですが、いつも通り設定から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.`

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240280/e753ed8c-d9dc-5851-e1ac-87e5c6f4d359.png" alt="error_dialog_big_sur.png" width="400px"/>

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

## Catalinaの場合
`bash
find . -name "*.mexmaci64" -exec xattr -d com.apple.quarantine {} \;
`

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

```bash:
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`の許可をしないとエラーが出続けると思うため、こちらの許可もお忘れなく。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240280/d3dc355e-cd33-4d48-4902-8698c87d7ea9.png" alt="security_setting_1.png" width="600px"/>

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

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240280/23864adf-1af8-01b4-84c1-e7fb132f4c29.png" alt="security_setting_2.png" width="400px"/>

## 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それぞれの対処法で解消されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240280/f2cfec33-82ae-c84b-7e18-510b4112aa55.png" alt="cat_12_error.png" width="500px"/>


# 最後に
最後まで読んでくださり、ありがとうございました！
いかがだったでしょうか？

この記事を通して、少しでもあなたの学びに役立てば幸いです！

:::note info
【仕事の相談はこちら】
お仕事の相談のある方は、下記のフォームよりお気軽にご相談ください。

[問い合わせフォームはこちら](https://forms.gle/G5g1SJ7BBZw7oXYA7)

もしもメールでの問い合わせの方がよろしければ、下記のメールアドレスへご連絡ください。

info*galirage.com（*を@に変えてご送付ください）

🎁 「生成AI活用の無料相談券」もしくは「生成AIの社内ガイドライン（無料PDF）」を『公式LINE』で配布中 🎁
『生成AIを業務に活用したいけど、どうしたらいいかわからない』といった声を多くいただきます。

Galirageでは公式LINEにて、チャットやオンライン会議で「完全個別の生成AI活用無料相談会」を実施しております！
（期間限定で実施しているため、ご興味ある方はお早めに以下のLINE公式アカウントをご登録ください^^）
https://lin.ee/rvz6lMN

※ 予告なく、キャンペーンを終了する可能性がございますが、ご了承ください。

【業務内容】
具体的には、以下のお仕事を中心に受け付けております！（[詳しくはこちら](https://galirage.notion.site/Galirage-AI-c2f3945fafb0433d8d2fd03e56927fd8)）
1. 受託開発（例：生成AIを使った社内システムの開発）
2. コンサルティング（例：技術戦略のアドバイス）
3. 講演（例：社内研修、イベント登壇）

※ 特に「生成AIを使ったシステム開発のご依頼」が多く、ご好評いただいております。

【これまでの相談事例】
以下のようなご相談が多くあります。

🔑 機密情報を漏洩させないための、生成AIのシステム構築をお願いしたい。
🤖 自社データを用いたFAQチャットボットの作り方を知りたい。
💡 ChatGPTを、自分たちの事業にどのように活かせるか、アドバイスやアイデアが欲しい。
:::
# おまけ
エンジニアの仲間（データサイエンティストも含む）を増やしたいため、公式LINEを始めました🎉

「**一緒に仕事をしてくれる方**」「**友だちとして仲良くしてくれる方**」は、友だち追加をしていただけますと嬉しいです！（仲良くなった人たちを集めて、「ボードゲーム会」や「ハッカソン」や「もくもく会」もやりたいなと考えています😆）

とはいえ、みなさんにもメリットがないと申し訳ないので、特典を用意しました！

友だち追加後に、アンケートに回答してくれた方へ「**エンジニア図鑑（職種20選）**」のPDFをお送りします◎

https://lin.ee/hFUN4TL

[![](https://www.umi-mori.jp/wp-content/uploads/2023/10/line_banner_v2.png)](https://lin.ee/hFUN4TL)
# 参考文献

https://en.wikibooks.org/wiki/SPM/Installation_on_64bit_Mac_OS_(Intel)#Troubleshooting