Edited at

Xcodeのアップデートした後にプラグインを使えるようにする

More than 3 years have passed since last update.


Xcodeのアップデート

Xcodeをアップデートを行うと今まで使ってたプラグインが使えなくなってしまいます。

そんな時のための方法です!

ただし、プラグインの方が新しいXcodeのバージョンに対応しておらず、

正常に動作しない可能性もあるので、注意してください。


手順


1. DVTPlugInCompatibilityUUIDを取得

現在のXcodeのDVTPlugInCompatibilityUUIDという値を取得します。

XcodeではDVTPlugInCompatibilityUUIDの値をみて、

そのプラグインが対応しているプラグインなのかをチェックしているようです。

ターミナルを開いて以下のコマンドで取得できます。

$ defaults read /Applications/Xcode.app/Contents/Info.plist DVTPlugInCompatibilityUUID


2. プラグインが入っているディレクトリを調べる

人によってプラグインが入っているディレクトリが違うことがあるようです。

[プラグイン名].xcplugin という名前でプラグインがあると思います。

領域
パス

ユーザー
~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins

グローバル
/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins


3. DVTPlugInCompatibilityUUIDを各プラグインのInfo.plistの追記する

[プラグイン名].xcplugin/Contentes/Info.plist を開き、

DVTPlugInCompatibilityUUIDs というキーでArrayがあると思うので、

そこに手順1で調べた DVTPlugInCompatibilityUUID を追記します。


*1つ1つ追記するのがめんどくさいという方へ

プラグインの数が多いので、1つずつ開いて追記するのがめんどくさいという方が多いかと思います。

そこでターミナルを使い、一括で追記する方法を紹介します。

DVTPlugInCompatibilityUUIDは手順1で調べたものへ、

パスは手順2で調べたものへ、適宜置き換えてください。

$ find [パス] -name Info.plist | xargs -IFILE defaults write FILE DVTPlugInCompatibilityUUIDs -array-add [DVTPlugInCompatibilityUUID]


4. Xcodeを再起動する

Xcodeを再起動すると以下の様なポップアップが表示されると思います。

Warning.png

プラグインの数によって多少メッセージは違いますが、内容は

Appleに認証されていないプラグインですが、読み込みますか?

という感じです。

Skip Bundleを選んでしまうと、せっかく追加したプラグインが無効化され、

以後ポップアップが表示されることもないので、必ず Load Bundles を選びましょう。

適当に Enter を押すとSkip Bundleが選ばれてしまうので注意が必要です!


Skip Bundleを選んでしまった場合

以下のコマンドを実行することで、起動時に再度上記のポップアップを表示させることができます。

最後のXcodeのバージョンは適宜置き換えてください。(6.3.26.4等)

defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-[Xcodeのバージョン]


DVTPlugInCompatibilityUUID一覧

過去のXcodeのDVTPlugInCompatibilityUUIDです。

バージョン
DVTPlugInCompatibilityUUID

5.1(5B130a)
A2E4D43F-41F4-4FB9-BB94-7177011C9AED

5.1.1(5B1008)
A2E4D43F-41F4-4FB9-BB94-7177011C9AED

6.1(6A1052d)
C4A681B0-4A26-480E-93EC-1218098B9AA0

6.1.1(6A2008a)
C4A681B0-4A26-480E-93EC-1218098B9AA0

6.2(6C131e)
A16FF353-8441-459E-A50C-B071F53F51B7

6.3(6D570)
9F75337B-21B4-4ADC-B558-F9CADF7073A7

6.3.1(6D1002)
9F75337B-21B4-4ADC-B558-F9CADF7073A7

6.3.2(6D2105)
E969541F-E6F9-4D25-8158-72DC3545A6C6

6.4(6E35b)
7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90

7.0(7A220)
0420B86A-AA43-4792-9ED0-6FE0F2B16A13

7.0(7B91b)
7265231C-39B4-402C-89E1-16167C4CC990

β版

バージョン
DVTPlugInCompatibilityUUID

6.3β3(6D543q)
992275C1-432A-4CF7-B659-D84ED6D42D3F

6.3β4(6D554n)
992275C1-432A-4CF7-B659-D84ED6D42D3F

6.4β(6E7)
992275C1-432A-4CF7-B659-D84ED6D42D3F

6.4β2(6E14)
992275C1-432A-4CF7-B659-D84ED6D42D3F

6.4β3(6E23)
8DC44374-2B35-4C57-A6FE-2AD66A36AAD9

6.4β4(6E31c)
5EDAC44F-8E0B-42C9-9BEF-E9C12EEC4949

7.0β(7A120f)
AABB7188-E14E-4433-AD3B-5CD791EAD9A3

7.0β2(7A121l)
AABB7188-E14E-4433-AD3B-5CD791EAD9A3