解决XCode插件在XCode6.4上失效的办法
Xcode 6.4 解决 插件失效的方法
查看 插件目录:
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/
邮件打开插件 包内容 找到里面的 Info.plist 文件 并 打开他
在DVTPlugInCompatibilityUUIDs 下 新添加个 键值对
value 是 7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90
重新启动 Xcode
//下面是转载的方法
Xcode升级后插件失效的原理与修复办法
Xcode的插件大大丰富了Xcode的功能,而且有了Alcatraz,插件的管理也非常容易,像我这种Vim党完全离不开XVim。但是有个非常恼人的问题:一旦升级Xcode,插件就失效!
之前Xcode升级到6.2的时候遇到过插件失效的问题,Google之后把一段很长命令复制到Terminal后运行一下即可,当时一看解决了, 顿时觉得满足感爆棚,自己可以拯救地球了~就没有再深入,结果升级到6.3时又遇到了。“同样的招式对圣斗士是不能使用第二次的!”,同样的坑对有节操的 程序员是不能掉进去第二次的!因此这一次一定要搞清楚为什么会这样,以后再次遇到了如何解决。
问题原因
Xcode的插件放置在目录~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
目录下,为.xcplugin格式。通过Show Content可以看到xcplugin中存在一个Info.plist,其中有一项为DVTPlugInCompatibilityUUIDs,而这就是插件失效的原因。
由于Apple没有公开插件开发的相关资料,这里我只能通过命名跟值猜测DVTPlugInCompatibilityUUIDs的作用:插件通过DVTPlugInCompatibilityUUIDs来指定能够运行此插件的Xcode版本。 因此,DVTPlugInCompatibilityUUIDs中存放的是Xcode版本对应的UUID,Xcode在启动加载控件时,将当前UUID同 插件Info.plist中DVTPlugInCompatibilityUUIDs存放的UUID数组进行匹配,如果没有匹配项,说明此插件无法在该版 本的Xcode运行,插件也就失效了。
解决办法
解决办法非常简单:将当前版本的UUID加到DVTPlugInCompatibilityUUIDs中即可。但是插件比较多(1个及以上)的情况 下,一个个的打开修改非常无聊跟低效,作为“懒惰”的程序员,这时候就要用上命令行,让重复劳动自动化。思路为将命令分为两部分:
- 通过
find
命令在插件目录下找到所有插件的Info.plist文件 - 通过
xargs
命令对上一步的搜索结果进行“for循环”(就这样理解吧),针对每一个Info.plist文件,利用defaults write
命令将当前版本的UUID加到DVTPlugInCompatibilityUUIDs中。
此时问题来了,挖掘机技术。。。不对,是如何获取当前版本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
。经过@Kyrrr的提醒,有一种更好的方式来获取当前版本Xcode的UUID:通过defaults read
命令从Xcode的Info.plist读取DVTPlugInCompatibilityUUID。
最终的命令为:
1
|
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`
|
在Terminal中运行上述命令就解决了插件失效的问题,在插件Info.plist的DVTPlugInCompatibilityUUIDs中也能看到新增的UUID了
解决XCode插件在XCode6.4上失效的办法的更多相关文章
- 转 mvc项目中,解决引用jquery文件后智能提示失效的办法
mvc项目中,解决用Url.Content方法引用jquery文件后智能提示失效的办法 这个标题不知道要怎么写才好, 但是希望文章的内容对大家有帮助. 场景如下: 我们在用开发开发程序的时候,经常 ...
- 解决xcode升级之后安装的插件失效
title: 解决xcode升级之后安装的插件失效date: 2015-08-23 11:07:53categories: 编辑工具 tags: xcode 我的博客:http://daycoding ...
- Xcode 插件失效,启动崩溃解决
升级6.4点击 Alcatraz PackageManager 崩溃解决 进入插件安装目录 cd ~/Library/Application\ Support/Developer/Shared/Xco ...
- iOS 开发者能用上的 10 个 Xcode 插件
本文由 伯乐在线 - 邢敏 翻译,黄利民 校稿.未经许可,禁止转载! 英文出处:code.tutsplus.com.欢迎加入翻译小组. 1. XcodeColors:给 Xcode 控制台添加颜色 2 ...
- 升级OS10.11系统后 Xcode6.4的变化少了个按钮 could not launch “Xcode” Xcode 插件安装
升级OS10.11系统后 Xcode6.4的变化少了个按钮 could not launch “Xcode” Xcode 插件安装 A: 升级10.11后Xcode 左上角模拟器选择菜单不在了 ...
- Xcode 插件失效的临时解决方案
每当Xcode升级之后,都会导致原有的Xcode插件不能使用,这是因为每个插件的Info.plist中记录了该插件兼容的Xcode版本的DVTPlugInCompatibilityUUID,而每个版本 ...
- Xcode插件管理以及Xcode7 升级
一,Xcode插件管理工具 Alcatraz: mkdir -p ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins; cur ...
- xcode 插件管理工具
每次xcode 更新后之前安装的插件 都失效了!解决办法: 一.可以通过在原插件项目infoplist新增 新xcode的 DVTPlugInCompatibilityUUID 来使之支持新版xcod ...
- 【转】怎样创建一个Xcode插件(Part 1)
原文:How To Create an Xcode Plugin: Part 1/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的 ...
随机推荐
- javascriptDOM对象之scrollTo()方法,滚动到页面指定位置
scrollTo是一个神奇的方法,常用于篇幅过长的页面,制作一个回顶部的按钮,我这里简单的实现以下 当然没有一个过渡的js效果 scrollTo(xpos,ypos) 参数 描述 xpos 必需.要在 ...
- 网页数据抓取(B/S)
C# 抓取网页内容(转) 1.抓取一般内容 需要三个类:WebRequest.WebResponse.StreamReader 所需命名空间:System.Net.System.IO 核心代码: We ...
- [HMLY]2.CocoaPods详解----进阶
作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处 一.podfile.lock文件 ...
- 《C++反汇编与逆向分析技术揭秘》——观察各种表达式的求值过程
---恢复内容开始--- 加法: 示例: 常量相加,则在编译期间就计算出两个常量相加后的结果,直接将这个结果参与运算,减少了运行期的计算.当有变量参与运算时,会先取出内存中的数据,放入通用寄存器中,再 ...
- Apache php无法开启php_curl
解决办法: 将php安装目录下的libeay32.dll,libssh2.dll,php5ts.dll,php_curl.dll,ssleay32.dll 复制到system32目录下 在httpd. ...
- [DP优化方法之斜率DP]
什么是斜率dp呢 大概就把一些单调的分组问题 从O(N^2)降到O(N) 具体的话我就不多说了 看论文: http://www.cnblogs.com/ka200812/archive/2012/08 ...
- 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法 转载
最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了bootstrap3,在chrome,firefox,safari,opera,360浏览器(极速模式).搜狗浏览器等浏览器下均没 ...
- 拦截QWebView弹出窗口
环境 系统:win7 64位旗舰版 软件:VS2013.QT5.5.1-32位 概述 当网页打开一个新的窗口时,我们有时候需要根据URL地址来判断弹出窗口是否合理,如果合理则弹出新窗口,否则不弹出.本 ...
- redis34--string 操作
String类型操作 1.set key value 设置key对应的值为string类型的value 2.mset key1 value1 - keyN valueN 一次设置多个key的值 3. ...
- Unsupported major.minor version 51.0解决方案
在使用myeclipse创建map/reduce项目,或者运行hadoop程序时: 在安装hadoop-eclipse-plugin插件会报:Unsupported major.minor versi ...