Blog

bevkjbvkbdkdxoeoziejdoiehz fiugebfuyegwik

Xcode 6.4, plugins and you

Xcode 6.4 seemingly brings a big change in the handling of third-party plugins. There's a second mechanism now beyond the compatibility UUIDs which determines if a plugin is loaded or not. If you need a quick refresher on Xcode's compatibility UUIDs, check out my previous post from last year.

Screenshot of 'unexpected code bundles' dialog

This dialog will probably be the first thing that greets you when opening Xcode 6.4 and contrary to my tweet when I first saw this dialog, it seems to be an improvement of the third-party plugin situation. If you hit "Load Bundles", those plugins will be loaded automatically without the need to update their compatibility UUIDs.

What this does under the hood is putting the bundle IDs of the plugins in question into either a whitelist ("allowed" key in the Xcode preferences plist) or a blacklist ("skipped"). The key for both lists is called "DVTPlugInManagerNonApplePlugIns-Xcode-6.4", so this list is also version-specific.

You can reset the list by running:

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

What does this mean for the future of third party plugins? ¯\_(ツ)_/¯ - but I sure as hell hope no days like this anymore.

UPDATE

Since 6.4 beta 2, plugins need both the correct compatibility UUID and need to be enabled via this new mechanism. The same is true for Xcode 6.3.2.