Xcode升级后, 插件管理Alcatraz 失效解决方法

来源:互联网 发布:网络教育托管 编辑:程序博客网 时间:2024/05/03 02:58

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

原因:

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 运行,插件也就失效了。

**

2、如果还没好,再继续进行以下步骤

**

控制台输入
defaults read com.apple.dt.Xcode

然后在结果里查找是否有

DVTPlugInManagerNonApplePlugIns-Xcode-6.4
DVTPlugInManagerNonApplePlugIns-Xcode-7.0
DVTPlugInManagerNonApplePlugIns-Xcode-7.1
等等,后面具体的数字取决于当前xcode版本。如果有的话执行命令,删除掉相关数据

控制台输入
defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4

重启Xcode应该就没问题了

问题原因:
苹果记录了一个Xcode使用插件的白名单、黑名单。如果在某次弹窗要求加载插件时,选择了不加载,那么这个选择会被记录下载,认为是不应该加载的插件,从而不被加载。这个记录即使重新安装插件也没有用。
删了所以的记录后,重新启动后,Xcode会弹出一个窗口要求加载插件,这时候选择 Load Bundles, 就可以正常加载插件了

0 0
原创粉丝点击