本以为在Xcode安装代码注释插件VVDocumenter是一件很轻松的事情,结果却经历了一些波折,为了其他人不再为这样的问题而折腾,决定写段文字记录下这个问题的解决过程。
一、到github(https://github.com/onevcat/VVDocumenter-Xcode)下载工程代码到本地编译,就会在本地目录 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 下看到VVDocumenter-Xcode.scplugin这样的文件夹,表示插件安装到Xcode了。一开始根据网上的某些指引,以为这样就可以了,但是重新打开Xcode,在菜单Window下面并没有看到VVDocumenter,在代码里输入///也没有出现期望的注释效果,说明还没有成功,请继续看下面的步骤。
二、由于Xcode7之后苹果要求加入UUID证书从而保证插件的稳定性。因此Xcode版本更新之后需要在VVDocumenter-Xcode的Info.plist文件中添加Xcode的UUID,办法如下
1、首先要获得Xcode的UUID,在终端里执行 defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID 得到的便是Xcode的UUID
2、接着添加Xcode的UUID到VVDocumenter-Xcode的Info.plist文件,步骤如下
(1)打开xcode插件所在的目录:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins;
(2)选择已经安装的插件例如VVDocumenter-Xcode,右键”显示包内容”;
(3)找到info.plist 文件,找到DVTPlugInCompatibilityUUIDs的项目,添加一个Item,Value的值为之前Xcode的UUID,保存。
(4)然后全部关闭Xcode 再重启Xcode! 到了这一步之后,我又以为这次会成功了,结果还是不行。有人说重启后会XCode会问你Load bundle还是Skip bundle,这时选择Load bundle就可以了。
但是我重启Xcode后并不没有出现那样的询问界面。 后来在github的官方网页上看到下面的一段:
All plugins will be disabled once you update your Xcode, since the supported UUIDs in the plugins do not contain the one. You should try to clean your plugins folder (~/Library/Application Support/Developer/Shared/Xcode/Plug-ins by default) and clone/build the latest version from master branch. If you happened to skip the bundle loading, you can use this to reset the prompt:
defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-{your_xcode_version}
我的Xcode版本号是7.0.1,于是在终端上输入defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-7.0.1 重启Xcode终于看到那个Load bundle 还是Skip bundle的界面,
毫不犹豫地选择了Load bundle, 这次果然成功了!