蘋果為了避免類似 Xcode Ghost :ghost: 事件的再次發(fā)生,Xcode8 禁用了插件機制,而開放了另一種形式: Source Editor extensions ,但是這種形式局限性太大Xcode8增加了安全相關(guān)的檢查,更細(xì)點說它從根源上屏蔽了插件的工作,xcode插件在xcode8上統(tǒng)統(tǒng)不能執(zhí)行。但是我們可以通過unsign的方式來運行Xcode.
工具:MakeXcodeGr8Again
MakeXcodeGr8Again 只是去除了它的簽名,這樣使得 Xcode8 也可以繼續(xù)使用插件了。由于簽名被移除,所以它的安全性又重回 Xcode7 時代,也就是還有可能受到類似 Xcode Ghost 的攻擊。所以不推薦用 XcodeGr8 來提交應(yīng)用到 Appstore。
MakeXcodeGr8Again的使用方法很簡單,它是mac端app,打開后直接將Xcode8 拖進去,默認(rèn)情況下MakeXcodeGr8Again會復(fù)制一份Xcode來unsign,這樣提交到AppStore的時候又可以回到安全模式了,當(dāng)然也可以選擇覆蓋原Xcode。等待十多分鐘后,應(yīng)用程序里會出現(xiàn)一個Xcodegr8的app,也就是復(fù)制后的unsign過的Xcode。打開就可以愉快的安裝插件了。
打開Xcodegr8后第一個安裝的就是Alcatraz,一款非常實用的插件管理工具。安裝后重啟,發(fā)現(xiàn)插件并不能用,后來查資料發(fā)現(xiàn),安裝Alcatraz后Xcode8的UUID并沒有加到Alcatraz中,需要手動加入。
Xcode存放插件的目錄有兩個:
/Users/Lcm/Library/Application Support/Developer/Shared/Xcode/Plug-ins
/Users/Lcm/Library/Developer/Xcode/Plug-ins
因此要更新兩次,執(zhí)行下面的命令:
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`
find ~/Library/Developer/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/Xcode.app/Contents/Info.plist DVTPlugInCompatibilityUUID`
執(zhí)行后再重啟就可以正常使用插件了。