0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M4 Mac (Apple Silicon)でのOpenBoardViewビルド成功報告 (`build.sh`修正とコード署名対応)

Last updated at Posted at 2025-06-23

M4チップを搭載した Apple Silicon Mac mini上で、OpenBoardView を無事ビルドし、起動できたことをご報告いたします。この成功には、build.shスクリプトへの小さな修正と、macOSのコード署名への対応が必要でした。同様の環境でOpenBoardViewの利用を検討されている方々、または今後のビルドプロセス改善の一助となれば幸いです。


私のシステム環境:

  • モデル名: Mac mini
  • モデル識別子: Mac16,10
  • モデル番号: MU9D3J/A
  • チップ: Apple M4
  • メモリ: 16 GB
  • システムバージョン: macOS 15.5 (24F74)

遭遇した問題(初回ビルド失敗時):

READMEに従ってリポジトリをクローンし、./build.shを実行したところ、ビルドプロセスはリンク段階でUndefined symbols for architecture x86_64エラーにより失敗しました。これは、私のシステムがarm64であるにもかかわらず、ビルドプロセスがx86_64(またはUniversal 2)バイナリの作成を試み、Homebrew経由でインストールされたarm64ライブラリ(例: libSDL2.dylib)との不一致が生じたことを示していました。

最初のbuild.shの出力に関連する、ターゲットアーキテクチャを示す行は以下の通りでした:

Extra flags passed to CMake: -DCMAKE_INSTALL_PREFIX= -DCMAKE_OSX_ARCHITECTURES=arm64;x86_64


解決策(build.shの修正とコード署名):

この問題を解決するため、build.shスクリプトに重要ながらも小さな変更を加えました:

  1. build.shの修正:
    build.shを開き、CMAKE_OSX_ARCHITECTURESを設定している行を変更しました。

    元の行:

    if [[ "$(uname -a)" == *"arm64"* ]]; then
      COMPILEFLAGS="$COMPILEFLAGS -DCMAKE_OSX_ARCHITECTURES=arm64;x86_64"
    fi
    

    修正後の行(arm64のみをターゲットとするため):

    if [[ "$(uname -a)" == *"arm64"* ]]; then
      COMPILEFLAGS="$COMPILEFLAGS -DCMAKE_OSX_ARCHITECTURES=arm64"
    fi
    

    これにより、Apple Silicon Macではarm64アーキテクチャのみがターゲットとなり、x86_64依存関係との競合を防ぎます。

  2. build.shの再実行:
    この修正後、./build.shはコンパイルおよびリンクに関して問題なく完了しました。出力はExtra flags passed to CMake: -DCMAKE_INSTALL_PREFIX= -DCMAKE_OSX_ARCHITECTURES=arm64であることを確認できました。

  3. コード署名の無効性への対応:
    新しくビルドされたopenboardview.appを実行しようとしたところ、SIGKILL (Code Signature Invalid)エラーによりすぐにクラッシュしました。これはクラッシュレポートに示されている通りです。

    Exception Type:        EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
    Termination Reason:    Namespace CODESIGNING, Code 2 Invalid Page
    

    これは、最近のmacOSバージョンにおけるSystem Integrity Protection (SIP) およびGatekeeperにより、自己ビルドされたアプリケーションでよく見られる問題です。

    これを修正するため、アプリケーションにアドホックコード署名を適用しました:

    codesign --force --deep --sign - ./openboardview.app
    

    出力にreplacing existing signatureと表示され、成功を示しました。


結果:

これらの手順を実行した後、openboardview.appはM4 Mac mini上で無事に起動し、完全に機能しているようです。

素晴らしいオープンソースツールの提供に感謝。この報告が、Apple Siliconデバイス、特にM4のような新しいチップ向けのビルドプロセスの改善に役立つことを願っています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?