Xcode插件那些事
今天看到一篇介绍Xcode插件相关的文章,感觉在开发中合理的使用插件可以极大的提高开发的效率。那篇文章主要介绍的最常用的几种插件。就自己而言用得最多的就是VVD,授人与鱼不如授人以鱼,我这里讲讲如何去发现这些好用的插件,及Xcode升级之后如何保证插件正常使用。
安装Alcatraz插件管理器
去github上下载源码,然后用xcode打开运行一下就可以了。插件会自动安装在~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
路径下
Alcatraz下载地址
效果如下图:
然后关闭xcode重新打开,在Window下可以发现多了一个packageManager
通过这个就可以随心所欲安装你需要的插件了。
总体来说现在收录到Package Manager里面的插件并不是很多。如果有时间可以一个一个看一下具体使用的场景。我一般是打开这个插件的github地址,选用start比较多的都不会差到哪里去。
比如:
如何去发现好用的插件(寻找资源的能力非常重要)
举个例子,我想搜索start最多的几款插件
请看下图:
就这张图告诉你的信息别网上那些文章信息量大得多。
程序员最重要的是思考的能力,与如何解决问题的能力。如果不懂得方法就算是别人给你得再多也没有任何卵用。
自己常用的插件(其实在Package Manager搜索一下,然后对比star数量就知道好坏了)
关于效果图,请读者自行移动步github,搜索一下插件名称就看到了。
1.VVDocumenter
规范注释生成器
2.ESJsonFormat-Xcode
一个将JSON格式化输出为模型的属性,特别好用.
3.KSImageNamed
为项目中使用的UIImage的imageNamed提供文件名自动补全功能。
4.ColorSense
直接通过系统的ColorPicker来自动生成对应颜色代码
5.Cocoapods-xcode-plugin
看名字就知道用途了
6.XAlign
对齐常规代码的Xcode插件
7.FKConsole
将控制台打印的UTF8的文字转码
如何解决Xcode升级插件不能用的问题
Xcode插件失效原因
并不是升级或重装后原本的插件被删掉了,其实插件还在这个目录~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 。之所以插件失效,是因为每个插件只供特定UUID的Xcode使用,更新后uuid改变,于是便不能正常使用。
解决办法
查看当前Xcode的uuid
在终端执行defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
,会得到一串 UUID 码。可能你的Xcode不是你安装的,而是直接拷贝别人安装好的Xcode到你的应用程序中,那么这个命令得不到Xcode的uuid。
另外一种办法也能得到Xcode的uuid,在应用程序中找到Xcode,右键选择显示包内容,找到Info.plist文件打开找到DVTPlugInCompatibilityUUID对应的值就是我们要的uuid
修改插件的uuid为当前Xcode的uuid
找到这个目录~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
,找到对应的插件,右键显示包内容,找到Info.plist文件打开找到DVTPlugInCompatibilityUUIDs的项目,添加一个Item,Value的值为之前Xcode的UUID,保存.
重启 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`