Quantumleap
737 words
4 minutes
BigSur + XVim2
2021-07-05

XVim2 + BigSur#

XVim2 は Xcode で Vim のキーバインドを有効化するためのプラグインで、Vimmer なぼくは重宝していたのですが BigSur では AppleID にサインインできなくなるという致命的な問題がありました。

BigSur がリリースされてから随分経ち、根本的ではないもの解決法がでてきたのでそれを試したいと思います。

BigSur + XVim2 で発生するエラーメッセージ

XVim2 の導入方法#

実は XVim2 には自己署名以外にも複数導入方法が存在する。

そもそも、自己署名をするのはオリジナルの状態では自己署名した XVim2 プラグインを Xcode が読み込めないことに起因する。

つまり、自己署名プラグインを強制的に読み込ませるような設定にすれば、わざわざ Xcode に自己署名を施さなくても良くなり、そうなれば BigSur でのサインイン問題は発生しないというわけである。

XcodemacOS方式アーキテクチャ
自己署名
BigSur サインイン問題
設定不要プラグイン方式x64/arm64
署名削除^^x64
オリジナルライブラリ整合性チェック無効化^-
^ライブラリ整合性チェック無効化+SIP 無効化^x64/arm64
^^SIMBLx64

実際、上の表のようにサインイン問題が発生するのは Xcode に自己署名を行った場合のみであることがわかる。

::: warning 署名削除について

ちなみに、署名削除の方法はtccd問題が発生するために行ってはならないとされている。tccd問題ってなんぞ?

あと、Markdown はデフォルトでテーブルの連結に対応してほしいです。

:::

ライブラリ整合性チェック無効化#

まず最初に Xcode でのライブラリの署名のチェック機能をオフにします。

よくわからないのですが、以下のコマンドでいけるようです。

sudo defaults write /Library/Preferences/com.apple.security.libraryvalidation.plist DisableLibraryValidation -bool true

SIP 無効化#

SIP とは System Integrity Protection の略で、まあ要するにセキュリティ保護を無効化します。

通常モードからでは変更できないので、リカバリーモードとして起動する必要があります。

Command+Rを押しながら macOS を起動して、ターミナルを開いて以下のコマンドを入力します。

csrutil disable

あとは Xcode 自体に署名をせず、普通にプラグイン形式で XVim2 を読み込めば動作します。

Xcode13#

とはいうものの、Xcode13 では Vim mode が実装されているので Xcode に XVim2 を導入するメリットはあまりありません。

ん、ということは今までは BigSur のサインイン問題でアップデートを渋っていたのですが、Xcode13 の Vim mode を使うためにも逆に積極的に BigSur を使うべきだという話になりそうですね。

というわけで、テストするために BigSur にアップデートしてみます。

XVim2、いままでありがとう。

追記#

BigSur + XVim2
https://fuwari.vercel.app/posts/2021/07/xvim2/
Author
tkgling
Published at
2021-07-05