您的位置:首页 > 其它

关于升级Xcode版本后插件不能用的问题解决

2015-08-10 16:05 441 查看
最近刚升级了Xcode6.4,然后就悲剧的发现以前装的插件都失效了。那么问题就来了,我们该怎么做才能让插件恢复正常呢。

问题原因

Xcode的插件放在目录:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ 下,为.xcplugin格式。通过右键Show Content(显示包内容) 可以看到 xcplugin中存在一个info.plist。打开plist文件,会发现里面有一项为DVTPlugInCompatibilityUUIDs,我们姑且暂时猜测DVTPlugInCompatibilityUUIDs的作用:插件通过DVTPlugInCompatibilityUUIDs来指定能够运行此插件的Xcode版本。因此,DVTPlugInCompatibilityUUIDs中存放的是Xcode版本对应的UUID。Xcode在启动加载控件时,当前版本的UUID和插件中info.plist文件中DVTPlugInCompatibilityUUIDs存放的UUID数组进行匹配。匹配不到的话,则此插件无法在该版本Xcode上运行,插件也就失效了。

解决办法

解决办法当然就是将Xcode当前版本的UUID加到插件的info.plist中的DVTPlugInCompatibilityUUIDs中即可。

打开终端输入以下代码获取到DVTPlugInCompatibilityUUID:defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID



那么问题又来了。插件可能会有很多个,一个一个打开修改非常无聊与低效,此时就要用到命令行,让重复劳动自动化。

获取到Xcode当前版本的UUID,然后在终端输入如下命令即可:

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90


将两步合并成一步就是:

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`


做完上述步骤,重启Xcode试试。问题在此处应该得以解决,但是也会有依旧失效的现象。此时,我们再打开终端,运行以下代码:

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


重启Xcode,选择Load Bundles。OK。

仍旧有问题的童鞋,可以在插件Info.plist的DVTPlugInCompatibilityUUIDs中看看是否存在新增的UUID。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: