为什么在更新到新版本的Xcode之后,安装Alcatraz的Xcode插件(如clang格式)不再工作?

今天我更新到Xcode 6.3.2,我不能运行铿锵的代码格式 – 它似乎甚至没有安装。 每次我更新Xcode,我必须重新安装Alcatraz和大部分的软件包(为什么btw?),使他们的工作在新版本的Xcode。

这一次,我重新安装了所有软件包(如VVD对象,颜色select器等),但是ClangFormat不起作用 – 它甚至不出现在“编辑”菜单中。 任何想法为什么?

顺便说一句。 我试图重新启动Xcode以及Mac本身:)

编辑(解决scheme):

Xcode 6.3.x的解决scheme(如果这不起作用,请使用下面的通用解决scheme。)

在terminal中,input以下内容:

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 9F75337B-21B4-4ADC-B558-F9CADF7073A7 

一般解决scheme

通过terminal获取新的UUID:

 defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID 

将新的UUID添加到插件中的DVTPlugInCompatibilityUUIDs项(您的xcplugin文件 – > show package contents – > Contents / Info.plist

通常情况下,以下几点有助于: 重新安装Alcatraz ,重新启动Xcode,重新安装并重新安装插件。 有时它有助于重新启动Xcode。 这对我有效。

如果你的插件仍然没有显示,问题可能是你的新Xcode的兼容性键还没有包含在你的插件的兼容性键列表中。

可能的解决scheme:

  • 等待包含Xcode的新UUID的插件更新
  • 如果你不想等(例如,如果你安装了Xcode的testing版,并且插件更新需要很长时间),你可以手动添加Xcode的新UUID到插件(详细信息如何操作这看下面)。 当然,不能保证你的插件能够工作。 如果Xcode已经改变,以至于它不再兼容,它当然是不行的。 但是,它通常会起作用。

要将新的UUID添加到插件:

在terminal中,如果您使用Xcode 6.3.2,请input以下内容:

 find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add E969541F-E6F9-4D25-8158-72DC3545A6C6 

对于其他版本的Xcode,通过terminal获取Xcode的UUID: defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID并用它来更新上面的find命令中的UUID。

[也可以手动将新的UUID添加到插件包中的DVTPlugInCompatibilityUUIDs项( xcplugin文件 – > show package contents – > Contents/Info.plist )]中,而不是使用上面的find命令。

来源: GitHub和“ ianmasters ”

安装Xcode 6.4后,我select“Skip Bundles”,我找不到Alcatraz。

我尝试添加UUID,但恶魔岛也没有工作;

然后试试这个:

 defaults read com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4 

在iTerm中显示如下:

 allowed = { }; skipped = { "com.mneorr.Alcatraz" = { version = 1; }; }; 

但是这个文件不能编辑,所以删除:

 defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4 

接下来我重新安装Alcatraz,Xcode再次显示“Load Bundles”,这次我不会出错,select“Load Bundles”。

你可以使用这个脚本在更新后更新你的Xcode插件(与Xcode 7.3一起工作正常):

 #!/bin/bash xcodeUUID=`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID` echo $xcodeUUID find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add $xcodeUUID 

或从我的要点复制https://gist.github.com/MaciejGad/86302b6b8bdb1ee25115

事实certificate,Xcode现在有一个你启用的白名单/黑名单。 您可以运行以下命令从terminal进行检查:

 $ defaults read com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.3.2 { allowed = { }; skipped = { "com.mneorr.Alcatraz" = { version = 1; }; "com.onevcat.VVDocumenter-Xcode" = { version = 1; }; "com.travisjeffery.ClangFormat" = { version = 1; }; };} 

坏消息是即使你重新安装Alcatraz,加载包的提示也不会再显示。 修复很简单,只需要运行以下命令删除白名单/黑名单:

 defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.3.2 

并重新打开Xcode再次提示(这次请确保你点击“加载包”)。

Orignal post: 在Xcode 6.3.2或更新的版本上重新启用Alcatraz

在terminal中使用Xcode的“所有版本”的通用代码,然后重新启动Xcode,一切正常:

 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的版本是6.3.2,则上面的代码等于

 find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add E969541F-E6F9-4D25-8158-72DC3545A6C6 

当你的Xcode是6.3或6.3.1时,等于:

 find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 9F75337B-21B4-4ADC-B558-F9CADF7073A7 

你可以发现,最后的代码是Xcode的uuid,所以我们可以得到Xcode的新uuid使用这个

  defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID 

并在该代码的末尾进行更改。

如果这仍然不起作用,您可能没有select在恶魔岛警报中的“装载捆绑” 在这里输入图像说明

如果你select了“跳过包”,你可以这样做

  1. 重新加载恶魔岛
  2. 恶魔岛的警报将再次出现,select装载捆绑
  3. 使用上面的代码在散热
  4. 重新加载Xcode
  5. 成功🍻!!

编辑:我试过了,只需要在terminal再次使用通用代码,警报将再次显示,select它,它会没事的。

自从Xcode 6.3.2以来,这一直是我的工作

http://pablin.org/2015/05/27/re-enable-alcatraz-on-xcode-6-dot-3-2-or-newer/

插件兼容性键在6.3.2 / 6.4.b2中不起作用

让我们看看这个线程: https : //github.com/omz/Dash-Plugin-for-Xcode/issues/37 – 他们有一个问题和解决scheme。

总结 :XCode确实改变了加载插件的方式(自定义插件首先加载),所以有必要对代码进行一些修改。

尝试从源代码构build而不是使用curl命令安装! 由于某种原因,我没有使用curl命令为我工作,包括更改UUID。 所以我删除了插件文件夹中的所有内容,并下载了主文件并进行了构build。 重新启动xCode并接受对话框。 也许这会帮助你。

该脚本同时更新插件的UDID,并确保提示您加载包:

 #!/bin/bash xcodeUUID=`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID` echo $xcodeUUID xcodeVersion=`defaults read /Applications/Xcode.app/Contents/Info.plist CFBundleShortVersionString` echo $xcodeVersion find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add $xcodeUUID defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-$xcodeVersion