質問・問題
Unity SDKでmacOSアプリのビルドの際に「DllNotFoundException: agoraSdkCWrapper」のエラーが出ます。
回答・解決方法
MacのAgora Unity プロジェクトがビルドされると、フレームワークライブラリのシンボリックリンク構造が失われことが原因になります。
回避策:
Unity SDKのプロジェクトにある下記フォルダのスクリプトを利用することでAgoraRTCKitフレームワーク内のシンボリックリンク構造を復元させることができます。
SDK 3.x
配置ディレクトリ例 : /Assets/AgoraEngine/Scripts/AgoraTools
仮定:
${project_path}, プロジェクトフォルダ
${build_folder}, ビルド先フォルダ
TestMAC.app;御社アプリ
Steps:
- cd ${build_folder}
- ${project_path}/Assets/AgoraEngine/Scripts/AgoraTools/prep_codesign.sh TestMAC.app
- /usr/bin/security find-identity -v -p codesigning
#こちらのコマンドで利用できる証明書が探せます - (export SIGNATURE="<your signature>"; ${project_path}/Assets/AgoraEngine/Scripts/AgoraTools/signcode.sh TestMAC.app)
SDK 4.x
配置ディレクトリ例 : /Assets/Agora-RTC-Plugin/Agora-Unity-RTC-SDK/Tools
- * Macのビルドディレクトリ("YourApp.app")から実行します。
- Unityプロジェクトをビルドし、スクリプトを実行します: ./prep_codesign.sh YourApp.app
- エンタイトルメントファイル "App.entitlements "が作成されます。 このファイルを codesign --entitlementsオプションに使用します。
共通
上記実行後、下記結果が得られます。
Verify that the result is
TestMac.app: valid on disk
TestMac.app: satisfies its Designated Requirement
prep_codesign.sh とsigncode.sh 内のコメントに上記詳細が記載されておりますので、併せてご参照ください。