摘要:xcode升级后打开xcode会提示loadbundle或skipbundle,一般我们选择loadbudle,xcode插件依然有效,选择skipbundle,xcode插件会失效。有人想装两个版本的xcode,后装的那个也会出现插件失效的情况。
一.xcode插件失效原因
并不是升级或重装后原本的插件被删掉了,其实插件还在这个目录~/library/application support/developer/shared/xcode/plug-ins 。之所以插件失效,是因为每个插件只供特定uuid的xcode使用,更新后uuid改变,于是便不能正常使用。
二.解决办法
1.查看当前xcode的uuid
在终端执行defaults read /applications/xcode.app/contents/info dvtplugincompatibilityuuid,会得到一串 uuid 码。可能你的xcode不是你安装的,而是直接拷贝别人安装好的xcode到你的应用程序中,那么这个命令得不到xcode的uuid,会出现如下图的问题:
另外一种办法也能得到xcode的uuid,在应用程序中找到xcode,右键选择显示包内容,找到info.plist文件打开找到dvtplugincompatibilityuuid对应的值就是我们要的uuid
2. 修改插件的uuid为当前xcode的uuid
找到这个目录~/library/application support/developer/shared/xcode/plug-ins,找到对应的插件,右键显示包内容,找到info.plist文件打开找到dvtplugincompatibilityuuids的项目,添加一个item,value的值为之前xcode的uuid,保存.
3.重启 xcode 之后会提示"load bundle"、 "skip bundle",这里必须选择"load bundle",不然插件无法使用。如果又不小心点了skip bundle,那就删掉你刚才在插件plist文件里添加的那行item,然后重启xcode,然后再重新刚才的那几步。至此问题已经完美解决。那么有人会问:如果很多个插件都失效,不想一个一个的改,有没有快速的方法,有,请看下一步。
三.批量更新插件的 dvtplugincompatibilityuuid 的命令(建议使用sudo方式执行)
在终端不能用命令defaults read /applications/xcode.app/contents/info dvtplugincompatibilityuuid得到uuid的,此方法不适用。批量修改命令为
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 dvtplugincompatibilityuuid`
好了,问题结束了。