一、Xcode插件失效原因
插件失效是因為每個插件只供特定UUID的Xcode使用,如果插件不支持當前的Xcode的UUID那么插件就不能使用。
二、解決辦法
1、查看當前Xcode的uuid
在終端執行defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
,會得到一串 UUID 碼。如果你的Xcode不是你安裝的,而是直接拷貝別人安裝好的Xcode到你的應用程序中,那么這個命令得不到Xcode的uuid,會出現如下圖的問題:
另外一種辦法也能得到Xcode的uuid,在應用程序中找到Xcode,右鍵選擇顯示包內容,找到Info.plist文件打開找到DVTPlugInCompatibilityUUID對應的值就是我們要的uuid
2、修改插件的uuid為當前Xcode的uuid
找到這個目錄~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
,找到對應的插件,右鍵顯示包內容,找到Info.plist文件打開找到DVTPlugInCompatibilityUUIDs的項目,添加一個Item,Value的值為之前Xcode的UUID,保存.
3、重啟 Xcode 之后會提示"Load bundle"、 "Skip Bundle",這里必須選擇"Load bundle",不然插件無法使用。如果又不小心點了Skip Bundle,那就刪掉你剛才在插件plist文件里添加的那行Item,然后重啟Xcode,然后再重新剛才的那幾步。至此問題已經完美解決。那么有人會問:如果很多個插件都失效,不想一個一個的改,有沒有快速的方法,有,請看下一步。
三.批量更新插件的 DVTPlugInCompatibilityUUID 的命令(建議使用sudo方式執行)
注意:在終端不能用命令defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
得到uuid的,此方法不適用。
批量修改命令為:
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`
好了,問題結束了。
注意:安裝插件的時候必須先啟動Xcode工程