XVim2 + BigSur

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

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

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

XVim2 の導入方法

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

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

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

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

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

署名削除について

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

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

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

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

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

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

SIP 無効化

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

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

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

csrutil disable
1

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

Xcode13 (opens new window)

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

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

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

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

追記

価格