Why are my Xcode plugins (such as clang format) installed with Alcatraz no longer working after updating to new version of Xcode?

Today I updated to Xcode 6.3.2 and I can't run the Clang code formatting – it seems like it's not even installed. Everytime I update Xcode, I have to reinstall Alcatraz and most of the packages (why btw?) to make them work on the new version of Xcode.

This time I reinstalled all packages (like VVDocumenter, Color picker, etc), but the ClangFormat doesn't work – it doesn't even appear in the "Edit" menu. Any idea why?

btw. I tried to restart Xcode as well as the Mac itself :)

EDIT (Solution):

Solution for Xcode 6.3.x (If this does not work, use the general solution below.)

In terminal, enter the following:

find ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 9F75337B-21B4-4ADC-B558-F9CADF7073A7

General solution

Get the new UUID via the terminal:

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

Add the new UUID to the DVTPlugInCompatibilityUUIDs key in the plugin (your xcplugin file --> show package contents --> Contents/Info.plist


Oftentimes, the following helps: Re-install Alcatraz, restart Xcode, de-install and re-install your plugin. Sometimes it helps to restart Xcode again. This worked for me.

If your plugin still does not show up, the problem is probably that the the compatibility key of your new Xcode is not yet included in the list of compatibility keys of your plugin.

Possible solutions:

  • Wait for an update of the plugin that includes the new UUID of Xcode
  • If you do not want to wait (for example, if you installed a beta of Xcode and it would take too long for the plugins to be updated), you may manually add the new UUID of Xcode to the plugin (details on how to do this see below). Of course, there is no guarantee that your plugin will work then. If Xcode has changed so that it is really not compatible anymore, it will, of course, not work. However, oftentimes it will work.
  • To add the new UUID to the plugin:

    In terminal, enter the following if you use Xcode 6.3.2:

    find ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add E969541F-E6F9-4D25-8158-72DC3545A6C6
    

    For other versions of Xcode, get the UUID of Xcode via the terminal: defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID and use it to update the UUID in the find command above.

    [Instead of using the find command above, you may also manually add the new UUID to the DVTPlugInCompatibilityUUIDs key in the plugin package (your xcplugin file --> show package contents --> Contents/Info.plist )]

    Sources: GitHub and post by "ianmasters"


    After install Xcode 6.4, I choose "Skip Bundles",I can't find Alcatraz.

    Fisrt I try the add UUID,but Alcatraz also no working;

    Then try this:

    defaults read com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4 
    

    In iTerm show below:

    allowed =     {
    };
    skipped =     {
        "com.mneorr.Alcatraz" =         {
            version = 1;
        };
    };
    

    but this file can't edit,so delete:

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

    Next,I reinstall Alcatraz,Xcode show “Load Bundles" again,this time I will not make wrong,choose "Load Bundles".


    You could use this script to update your Xcode's plugin after update (works fine with Xcode 7.3):

    #!/bin/bash
    xcodeUUID=`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`
    echo $xcodeUUID
    find ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add $xcodeUUID
    

    or copy from my gist https://gist.github.com/MaciejGad/86302b6b8bdb1ee25115

    链接地址: http://www.djcxy.com/p/85292.html

    上一篇: 传输安全性阻止了明文HTTP

    下一篇: 为什么在升级到新版本的Xcode后,安装Alcatraz的Xcode插件(如clang格式)不再有效?