升级Xcode之后以及Xcode8.1之后插件问题
简述:
Xcode 每次更新插件都会失效,要重装. Xcode升级后打开Xcode会提示loadbundle或Skipbundle,一般我们选择loadbudle,Xcode插件依然有效,选择Skipbundle,Xcode插件会失效。
分析:
升级或重装后原本的插件没有被删掉了,其实还在目录
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins下面, 之所以插件失效,是因为每个插件只供特定UUID的Xcode使用,更新Xcode后UUID改变,于是导致不能正常使用。
解决:
查看当前Xcode的UUID, 添加到插件特定的UUID, 重新打开Xcode选择loadbundle即可
查看当前Xcode的UUID:
方法1: 选择Xcode 右键 -> 选项 -> finder中显示 -> 右键显示包内容 -> contents -> info.plist -> DVTPlugInCompatibilityUUID 对应的就是UUID
屏幕快照 2016-12-11 下午2.24.50.png
方法2: 在终端执行defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID,会得到UUID 码
PS:如果你的Xcode不是你自己安装的, 别人那里拷贝的, 那么执行命令不会得到UUID, 还是用第一种方案吧
添加到插件中:
方法1:找到目录~/Library/Application Support/Developer/Shared/Xcode/Plug-ins(cmd+shift+g)输入路径进去, 找到插件, 右键显示宝内容, info.plist文件中有一个
在DVTPlugInCompatibilityUUIDs里边点击加号, 对应右边添加进去保存
即可
方法2:终端执行
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
即可, 但是不适用上面通过终端获取UUID不成功的重启Xcode即可
Xcode8.1之后即使这样做了也不能使用插件, 本人是这样, 大家的如何我就不清楚了, 解决方案如下:
1.打开钥匙串访问, 创建证书
屏幕快照 2016-12-11 下午2.40.30.png
名称写:XcodeSigner, 身份类型:自签名根证书, 证书类型: 代码签名
2.打开终端执行
sudo codesign -f -s XcodeSigner /Applications/Xcode.app
这是shell命令, -fs也可以, 最好是复制, 这里需要等待......
执行完之后, 即可下载插件使用了
这里特推荐插件之母, Alcatraz
安装 1.github地址:https://github.com/alcatraz/Alcatraz
在命令行中输入如下指令:
curl -fsSL https://raw.github.com/alcatraz/Alcatraz/master/Scripts/install.sh | sh
卸载
命令行输入:rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
特别提醒安装时关掉Xcode
后部分参考文章:
http://blog.csdn.net/sharpyl/article/details/50682139