Xcode-8使用XVim的问题
2016年09月10日 Xcode

做为一个Vim党,几乎是有Vim插件的IDE都会安装上,然后各种跳转爽得飞起,Xcode上就是成名已久的了XVim,它还有一个官方网站,但是一般的下载安装,直接去github就行了。最近使用最新Xcode安装XVim插件遇到了几个问题,发现在XVim的github上已经有老外提了issue,并且有了解决方式,总结记录一下。

问题

因为用到了Swift 3,所以早早就把Xcode升到了Xcode8 beta版本,像之前Apple官方出的Swift迁移指南说得一样,由Xcode7.3生成的Xcode工程,由Xcode8打开的时候会弹出一个迁移助手,然后把之前工程里不符合Swift3的代码做相应的改动。当然,也有工具不能识别和修改的,遇到得最多的就是for循环(使用原Swift2中enumerate方法)相关的,具体可以看官方的迁移指南,里面有具体指出哪些需要手动修改。

跑题了…,使用Xcode8安装XVim的时候,直接clone XVim工程再make安装,之后Xcode无法启动,直接就崩溃了(错误提示是 code signature invalid类似的信息)。。

解决

标准的安装方式与XVim工程里面的Readme一致。最可能遇到的问题就是,在github上它的安装说明上,使用xcode-select -p命令查看当前是用的哪个版本的Xcode,如果之前同时使用Xcode7.3与Xcode8 beta,并把Xcode7.3卸载,此时输出的那个目录不是对应的Contents/Developer目录(是一个其他的的目录),这里需要使用xcode-select -s <路径>命令指定一下/Applications/Xcode-beta.app/Contents/Developer目录。下面只说解决安装XVim导致XCode崩溃的问题。

把大象装冰箱分几步:

  1. 把现在出现崩溃的Xcode移除,然后重新解压出一份新的Xcode.app放在应用程序目录

  2. 查看自己的IdentifyID,终端里运行如下命令:

    security find-identity -p codesigning

    终端会打印出两段信息,把其中看起来像是MD5码的字符串保存。

  3. 进入到XVim的解压目录中,如果之前make过,先make clean一下,然后执行make,会询问你是否移除Xcode的signature(会停下来让你选择y还是N),这里选N(不移除),然后XVim工程make完成。

  4. 这时候如果你打开Xcode,XVim插件是没有启用的。需要另外一步,打开终端,定位到/Applications目录,执行下面的命令:

    codesign -f -s <刚才保存的那串IdentifyID> Xcode.app

    需要点时间,应该是几分钟左右,完成之后再打开Xcode,会提示你有一个未知的XVim.plugin的bundle没有加载,选中Load Bundle,然后XVim就可以用了。

    Enjoy it!

End