Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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 がやってきたわけですね。
みなさんガンガンおくりましょう。

感想

ただただつらい...

補足

ふむふむ

dealforest
Freelance iOS developer, create Tuna and Cichlid of Xcode Plugin
http://blog.dealforest.net
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした