20

I've updated xcode to version 5.1. And all my plugins didn't work.

I didn't see any error log when I install them again.

How can I detect result of installing processing?

I'm using

  • Alcatraz.xcplugin

  • CocoaPods.xcplugin

  • KSImageNamed.xcplugin

  • XAlign.xcplugin

I think there's some problem with xcode 5.1 because all my plugins still work on xcode 5.0.1

Tony
  • 4,311
  • 26
  • 49

6 Answers6

48

Based on what Tuan Do said (THANK YOU!):

  • navigate to your plugins folder (library/Application Support/Developer/Shared/Xcode/Plug-ins)
  • Right click on the plug in and select show package contents
  • Open the info.plist file and find the DVTPlugInCompatibilityUUIDs and expand that section.
  • Click the + button and paste the UUID from above.
  • Save the file and restart Xcode.
  • Your plugins will appear again.

Repeat for any plug ins.

  • Xcode 6 UUID
    C4A681B0-4A26-480E-93EC-1218098B9AA0

  • Xcode 6.2 UUID
    A16FF353-8441-459E-A50C-B071F53F51B7

  • Xcode 6.3 UUID
    9F75337B-21B4-4ADC-B558-F9CADF7073A7

  • Xcode 6.3.2 UUID
    E969541F-E6F9-4D25-8158-72DC3545A6C6

  • Xcode 7.3 UUID ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C

How to find the UUID?

Open Terminal and paste the following:

defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
Justin Holman
  • 852
  • 5
  • 7
24

I edited Info.plist file like this:

Add A2E4D43F-41F4-4FB9-BB94-7177011C9AED into key DVTPlugInCompatibilityUUIDs

It works for CocoaPods, Dash plugin. I'm trying with others.

Hope it works for you!

Source: https://github.com/omz/Dash-Plugin-for-Xcode/commit/989b3aad46f5a30efacd7c23432ce7343d84cc58

Tuan Do
  • 459
  • 3
  • 4
  • 1
    Thanks so much! It works. But I dont understand what it mean. Can you explain more? – Tony Mar 11 '14 at 16:12
6

You should add current UUID of XCode into plugin's DVTPlugInCompatibilityUUIDs to make plugin work, use this command:

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/Xcode.app/Contents/Info.plist DVTPlugInCompatibilityUUID`
  1. find every plugin's Info.plist
  2. default read current UUID of XCode
  3. default write current UUID of XCode into plugin's DVTPlugInCompatibilityUUIDs
Joe Shang
  • 139
  • 1
  • 5
1

I created a simple shell script that adds supplied UUID to all installed plugins:

#!/bin/bash
cd "${HOME}/Library/Application Support/Developer/Shared/Xcode/Plug-ins"
for plugin in *.xcplugin; do
    /usr/libexec/PlistBuddy -c "Add :DVTPlugInCompatibilityUUIDs: string $1" "${plugin}/Contents/Info.plist"
done
zenbeni
  • 7,019
  • 3
  • 29
  • 60
kambala
  • 2,341
  • 19
  • 20
  • 2
    While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. – AlexB May 19 '15 at 11:20
  • @AlexB thanks for the hint, won't make this mistake next time – kambala May 19 '15 at 13:14
0

I've written an editor extension to solve this problem. Now you can fix this error by a simple click.

enter image description here

enter image description here

Download link: Dropbox

Chen Hao
  • 136
  • 5
-1

When that happens, quit XCode, open the Terminal and type:

tail -f /var/log/system.log

then open XCode again. If there is a compatibility problem with any plugin, you'll see a log like this one:

[MT] PluginLoading: Required plug-in compatibility UUID C4A681B0-4A26-480E-93EC-1218098B9AA0 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Lin.xcplugin' not present in DVTPlugInCompatibilityUUIDs

So, what you have to do to fix compatibility problems is just add the logged UUIDs to broken plugins' Info.plist files, grouped at key DVTPlugInCompatibilityUUIDs (in the example above, C4A681B0-4A26-480E-93EC-1218098B9AA0)

You'll probably be doing this at every new XCode version since Apple does not support plugins officially.