为什么在更新到新版本的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了“跳过包”,你可以这样做
- 重新加载恶魔岛
- 恶魔岛的警报将再次出现,select装载捆绑
- 使用上面的代码在散热
- 重新加载Xcode
- 成功🍻!!
编辑:我试过了,只需要在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