M1 Mac(arm64)環境でsbt-protocがエラーになる

M1 Mac(arm64)でプロジェクトの環境構築をしているとsbt-protocでエラーが出たので、調べた内容と解決方法を残しておこうと思います。

前提

  • MacBook Pro(arm64)
  • sbt v1.6.1
  • sbt-protoc v1.0.2

原因

protobuf3.17.3 以前のバージョンではM1 Mac向けのbinaryを配布していていないのが原因です。

sbt-protocv1.0.2のコードを見てみると、PB.protocVersion3.15.6 に指定されているため、M1 Macではエラーになっていました。

原因について言及されているIssue github.com

sbt-protocのv1.0.2v1.0.5の差分 github.com

protobufのM1 Mac Suuportについて言及されているIssue

github.com

protobuf3.17.2のmavenのリポジトリを見てみると、M1 Mac向けのバイナリが配布されていないのが分かります。

repo1.maven.org

解決方法

sbt-protocのバージョンをv1.0.5 以上に上げてください。

sbt-protocのv1.0.5PB.protocVersionを確認すると3.19.1に指定されているため、これ以上に上げればM1 Macでもエラーにならずに使用できると思います。

github.com

僕は現時点で最新のv1.0.6にアップデートすることでエラーを解消しました。(2022/1/16 時点)