LoginSignup
55
53

More than 5 years have passed since last update.

Xcode 6.3.2 で Plugin を動くようにするまで

Last updated at Posted at 2015-05-21

Xcode 6.3.2 で Plugin を動くようにするまで」から引用です

TL;DR

  • Xcode 6.3.2 用の DVTPlugInCompatibilityUUIDs を追加する
  • Xcode 起動時に Plugin を有効にするポップアップがでるようになった
  • 大抵の Plugin はメニューに表示されないが動作は初期設定の動作はする(設定で有効にしないと動かないようなものはダメ)

以下、それぞれの詳細です

追記 2015/05/22 14:04

人によって Plugin が入っている場所が違うので適宜変更してもらえればと。

パス
グローバル領域 /Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
ユーザー領域 ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins

追記終わり

DVTPlugInCompatibilityUUIDs を追加

以下のコマンドで一括して DVTPlugInCompatibilityUUIDs(E969541F-E6F9-4D25-8158-72DC3545A6C6) を追加

$ find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist | xargs -IFILE defaults write FILE DVTPlugInCompatibilityUUIDs -array-add E969541F-E6F9-4D25-8158-72DC3545A6C6

DVTPlugInCompatibilityUUIDs が異なる

追記 2015/05/22 14:04
FILE のところには plist を指定すれば問題ありませんでした。
使い方をミスってただけです。お騒がせしました。

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

追記おわり

普段 defaults read ...DVTPlugInCompatibilityUUIDs を確認してたので無駄にはまった。。。なんで違うのかはよくわかりません。僕の環境だけかもしれませんが defaults read ... は信じないと心に誓いました。

$ defaults read FILE DVTPlugInCompatibilityUUIDs /Applications/Xcode.app/Contents/Info.plist

(
    "9F75337B-21B4-4ADC-B558-F9CADF7073A7"
)
$ cp /Applications/Xcode.app/Contents/Info.plist ~
$ plutil -convert xml1 ~/Info.plist
$ cat ~/Info.plist

...
  <key>DVTPlugInCompatibilityUUID</key>
  <string>E969541F-E6F9-4D25-8158-72DC3545A6C6</string>
...

Xcode 起動時に Plugin を有効にするポップアップがでるようになった

Plugin の数によって多少メッセージが異なりますが大体こんな感じです
popup

これが曲者で、UUID 追加後に Xcode を起動すると初回のみ表示されます。
"Skip Bundle" を選択すると Plugin が無効になり、Xcode を再起動してもポップアップはでてきません
しかも default が "Skip Bundle" のため、適当に Enter を押すと Plugin が無効になるという悲しさ...

ポップアップを再度表示する方法

追記 2015/05/22 14:04
コメントから教えてもらいました。

defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.3.2

でもリセットできるみたいです!

追記終わり

  1. Xcode を閉じる
  2. ~/Application Support/Developer/Shared/Xcode/Plug-ins の名前を変更する
  3. Xcode を起動
  4. ~/Application Support/Developer/Shared/Xcode/Plug-ins に名前を戻す
  5. Xcode を再起動

こうすれポップアップが表示されるので "Load Bundle" を選択しましょう

メニューを表示する方法

これは Xcode Plugin 開発者用ですね。

どうやら pluginDidLoad: が呼ばれたタイミングだと -[[NSApp mainMenu] itemWithTitle:]nil を返すようになったのが原因です。

NSMenuDidChangeItemNotification を Observe するようにしてメニューを設定するようにすれば出るようになります。
Tuna の場合はこんな感じで対応しました。

PR おくれば大抵マージされると思うので空前の GitHub Chance がやってきたわけですね。
みなさんガンガンおくりましょう。

感想

ただただつらい...

補足

ふむふむ

55
53
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
53