[ SWIFT ] - XCODE升級,Alcatraz外掛失效說明

XCODE的天王級插件管理-Alcatraz一直是很多人在開發APP時不可或缺的強力助手!
可惜的是每次只要 XCOD一升級,Alcatraz插件便會失效,以下為大家說明失效原因及這次升級XCODE 6.3版後,Alcatraz插件失效的處理方法。

[ 失效原因 ]
插件存放路徑:~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
格式:.xcplugin格式。xcode_plugins_update.sh
說明:
透過Show Content可以看到xcplugin中存在一個Info.plist,其中一項為DVTPlugInCompatibilityUUIDs,此為導致插件失效的原因。


由於插件是透通DVTPlugInCompatibilityUUIDs來指定能夠運行此插件的XCode版本。而版本的比對是透過DVTPlugInCompatibilityUUIDs中的UUID來存放XCode版本,因此每次XCODE升級後UUID代碼便會不同,導致XCode在啓動插件載入時,無法與目前的UUID進行比對,而導致插件失效。

[ 解決方法 ]
將當前版本的UUID加到DVTPlugInCompatibilityUUIDs中即可。

[查詢目前XCODE版本UUID]
1.先關閉XCODE後,開啟終端機,輸入:tail -f /var/log/system.log
2.重新開啟XCODE後,便可在終端機的訊息中發現[ MT ] PluginLoading片段,其中UUID部分便是目前的XCODE版本UUID代碼,此外也可以由此log清除看到插件在載入時發現找不到適合的UUID代碼。

[ MT ] PluginLoading片段:
[MT] PluginLoading: Required plug-in compatibility UUID 9F75337B-21B4-4ADC-B558-F9CADF7073A7 for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin' not present in DVTPlugInCompatibilityUUIDs

由此可發現目前XCODE6.3版的UUID代碼為: 9F75337B-21B4-4ADC-B558-F9CADF7073A7 
圖:終端機log查詢UUID代碼


後來在 GitHub上有發現更方便得作法(使用defaults read):
網址:https://gist.github.com/veiz/391d4a404658e733a4c9
下載後直接執行即可!

#!/bin/bash
#获取当前版本Xcode的DVTPlugInCompatibilityUUID
UUID=$(defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID)
echo Xcode DVTPlugInCompatibilityUUID is $UUID
#遍历每一个Xcode插件,将UUID写入插件的兼容列表中
for MyPlugin in ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/*
do
defaults write "$MyPlugin"/Contents/Info DVTPlugInCompatibilityUUIDs -array-add $UUID
echo write DVTPlugInCompatibilityUUID to $MyPlugin succeed!
done


留言

熱門文章