macOS で Looking Glass Portrait を動かそうとして、盛大に沼った(現在進行形)ため、メモ。
前提条件
- 私の環境
- macbook(Intel) + eGPU(Radeon RX580) + macOS 11.6 Big Sur
初期動作チェック
大事なこと。いきなりPCにつないではいけない。
UCB-Cケーブルのみを「十分な電源供給ができるアダプタ」に接続して電源ON!
するとスタンドアロンのデモが始まる。
このときうまく起動しない場合、電源が足りていない可能性がある。適当なAnkerの充電器からケーブル伸ばしたらダメだった。(Raspberry Pi 4 で Under boltage Detect! とか怒られる環境は多分大体ダメっぽい。)
めんどくさければ、動作確認段階では、付録の USB-C アダプタを使っておきましょう。
ドライバインストール
Webで適当にググると、HoloPlay Serviceをインストールと言われているが、そんなものはもうありません。
いまは、Looking Glass Bridge に名前が変わりました。
では、ドライバを起動してみよう!!うん、反応しない...
エラーも何も吐かずに落ちるのでしかたないので、CLIで叩いてみましょう。
/Applications/LookingGlassBridge.app/Contents/MacOS/LookingGlassBridge
dyld: Library not loaded: /usr/local/opt/xz/lib/liblzma.5.dylib
Referenced from: /Applications/LookingGlassBridge.app/Contents/libs/libavcodec.58.dylib
Reason: no suitable image found. Did find:
/usr/local/opt/xz/lib/liblzma.5.dylib: code signature in (/usr/local/opt/xz/lib/liblzma.5.dylib) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
Abort trap: 6
はぁ、xzのライブラリが無署名であるため、Bridge側のエンティティ設定による制約で弾いてる模様。
解決方法は署名済みのライブラリに差し替えることですが、brewでreinstallしても無署名のものしかないので、自分で署名するしかありません。
macOSのライブラリ署名を行うには、Developer Program 課金 が必須であるため12980円をAppleに投げつけます。
早速Distribution証明書を生成してダウンロード、インポートして、該当ライブラリを署名してみます。 (この時、証明書が信頼されてないうんぬん言われたら、CSR生成時に使用した大元の証明書が適切ではなかった可能性があります。 https://www.apple.com/certificateauthority/ から Worldwide Developer Relations - G3 を選んで使いましょう。ちなみに、G6でええやろ、って使ったらダメでした)
署名コマンドわかりにくいけど
codesign -f -s 'Apple Distribution: <自分の名前> (なんかID)' 署名したいライブラリ.dylib
みたいな感じでしたね。証明書の部分は、キーチェーンからコピペしましょう。
で、これで解決して欲しかったんですけどね、
dyld: Library not loaded: /usr/local/opt/xz/lib/liblzma.5.dylib
Referenced from: /Applications/LookingGlassBridge.app/Contents/libs/libavcodec.58.dylib
Reason: no suitable image found. Did find:
/usr/local/opt/xz/lib/liblzma.5.dylib: code signature in (/usr/local/opt/xz/lib/liblzma.5.dylib) not valid for use in process using Library Validation: mapping process and mapped file (non-platform) have different Team IDs
zsh: abort ./LookingGlassBridge
まさかの、同一Team ID制約かけてやがった。ばっかじゃねぇの。。
流石に詰みなので、サポートに依存ライブラリ含めるか、依存ライブラリの署名チェックはずして!ってメールを投げた。
(現在、返答待ち)
備考:最近のmacOSではEntity設定時に明示的に無効にしておかないと、外部依存ライブラリが無署名であるときに読み込めずにエラーになる。
https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_disable-library-validation?language=objc
チュートリアルどれよ?
これです。公式Webサイトのナビゲーションが微妙すぎて初見で辿り着けねぇ...
https://lookingglassfactory.com/onboarding-instructions/looking-glass-portrait
無駄に凝ったUIなんていらないから、開発に必要なリンク整備と、必要ソフトウェアの過去バージョン含めたリソースページ整備しろ。