Xcode升级后插件失效解决办法

Xcode 的插件大大丰富了 Xcode 的功能,而且有了Alcatraz,插件的管理也非常容易,但是有个非常恼人的问题:一旦升级 Xcode ,插件就失效!
解决办法:将当前版本的 UUID 加到 DVTPlugInCompatibilityUUIDs 中即可。但是插件比较多的情况下,一个个的打开修改非常无聊跟低效,作为“懒惰”的程序员,这时候就要用上命令行,让重复劳动自动化。思路为将命令分为两部分:
1.通过find命令在插件目录下找到所有插件的 Info.plist 文件。
2.通过xargs命令对上一步的搜索结果进行“遍历”,针对每一个 Info.plist 文件,利用defaults write命令将当前版本的 UUID 加到 DVTPlugInCompatibilityUUIDs 中。
【Xcode升级后插件失效解决办法】此时问题来了,如何获取当前版本 Xcode 的 UUID 呢?
第一种办法:
首先关掉 Xcode,打开 Terminal,输入tail -f /var/log/system.log,再次打开 Xcode,就能看到如下 log 信息:

[MT] PluginLoading: Required plug-in compatibility UUID 9F75337B-21B4-4ADC-B558-F9CADF7073A7 for plug-in at path ‘~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin’ not present in DVTPlugInCompatibilityUUIDs
可以看到,log 信息表明 Xcode 加载插件失败的原因,并且能够看到当前版本(6.3)Xcode 的 UUID 为9F75337B-21B4-4ADC-B558-F9CADF7073A7。
?第二种办法:
通过defaults read命令从 Xcode 的 Info.plist 读取 DVTPlugInCompatibilityUUID。
最终的命令为:
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth3| xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaultsread/Applications/Xcode.app/Contents/Info.plist DVTPlugInCompatibilityUUID`

在终端中运行上述命令就解决了插件失效的问题,在插件 Info.plist 的 DVTPlugInCompatibilityUUIDs 中也能看到新增的 UUID 了。

    推荐阅读