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


# 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の追記する

[step_1]: http://qiita.com/Yuta/items/a8b8c373ce8f42a30d0d#1-dvtplugincompatibilityuuid%E3%82%92%E5%8F%96%E5%BE%97

**[プラグイン名].xcplugin/Contentes/Info.plist** を開き、
**DVTPlugInCompatibilityUUIDs** というキーでArrayがあると思うので、
そこに[手順1][step_1]で調べた *DVTPlugInCompatibilityUUID* を追記します。

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

[step_2]: http://qiita.com/Yuta/items/a8b8c373ce8f42a30d0d#2-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%8C%E5%85%A5%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B

プラグインの数が多いので、1つずつ開いて追記するのがめんどくさいという方が多いかと思います。
そこでターミナルを使い、一括で追記する方法を紹介します。
DVTPlugInCompatibilityUUIDは[手順1][step_1]で調べたものへ、
パスは[手順2][step_2]で調べたものへ、適宜置き換えてください。

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


### 4. Xcodeを再起動する

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

![Warning.png](https://qiita-image-store.s3.amazonaws.com/0/37344/0e777bbf-5ec1-ea09-f7da-683188db44da.png "Warning.png")

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

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

という感じです。
`Skip Bundle`を選んでしまうと、せっかく追加したプラグインが無効化され、
以後ポップアップが表示されることもないので、必ず **`Load Bundles`** を選びましょう。
**適当に Enter を押すとSkip Bundleが選ばれてしまうので注意が必要です！**

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

以下のコマンドを実行することで、起動時に再度上記のポップアップを表示させることができます。
最後のXcodeのバージョンは適宜置き換えてください。(`6.3.2`、`6.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|