Xcode10 安裝Alcatraz外掛
Xcode升級到8.x以上版本後為了提升安全性, 防止XcodeGhost事件的發生, 添加了程式碼簽名機制, 所以我們要使用外掛第一步是給Xcode重新簽名, 這是Xcode8+最為重要的一步
1.可能在老版本中的外掛已經不在支援新版Xcode,為了能夠正常使用還是建議使用以下命令全部刪除之前的外掛重新安裝
rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
rm -rf ~/Library/Application\ Support/Alcatraz/
2.在電腦鑰匙串中新建一個程式碼簽名證書 (這一步對於Xcode8+ 十分重要)
3.證書配置完畢 在終端執行命令配置相關資訊 "XcodeSigner"欄位是你生成證書時名字
sudo codesign -f -s XcodeSigner /Applications/Xcode.app
4.安裝最新的Alcatraz外掛
curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
另提供本地安裝方法:
下載地址:https://github.com/alcatraz/Alcatraz
官網地址:
http://alcatraz.io/
安裝成功以後會出現下圖
Alcatraz安裝成功
5.安裝簽名外掛 (可能會卡在那裡 需要手動回車,然後輸入電腦密碼執行)
sudo gem install -n /usr/local/bin update_xcode_plugins
安裝成功
6.檢視已經安裝的外掛,並對已經安裝的外掛全部升級,在步驟1不想全部刪除的可以使用這個命名嘗試
執行 update_xcode_plugins ,重新開啟xcode即可。
Added ***************** to Alcatraz(1.2.1) ” 即為把新版Xcode的DVTPlugInCompatibilityUUID加入到每一個外掛的Info檔案中
7 執行update_xcode_plugins --unsign命令 讓Xcode解除簽名,只有這樣我們才能真正的使用Alcatraz,可能會需要時間,請等待
update_xcode_plugins --unsign
7.1 注意: 可能會卡在那裡,需要手動回車並輸入Yes 執行以下命令
Xcode解除簽名
8 .注意:在使用外掛爽完之後記得在打包的使用一定要使用Xcode簽名,不然你就嘿嘿嘿~
update_xcode_plugins --restore
9.重新啟動Xcode 然後看到彈窗提示選擇 load bundle
彈框提示
10.開啟Xcode,就看到我們熟悉的Package Manager了
總結:小編遇到一些坑 有一樣的同學可以這樣嘗試
1.在Xcode8+Alcatraz外掛的時候 如果沒有安裝程式碼證書的時候已經執行了 update_xcode_plugins --unsign 命令,我們在開啟Xcode的時候可能會出現宕機情況(我的出現了,解決了好久) 解決辦法就是先不開啟Xcode 先執行update_xcode_plugins --restore 操作 也就是步驟8
2. 執行完步驟8之後,我們嘗試執行步驟2,3 這兩個是關鍵,沒有執行update_xcode_plugins --restore ,直接執行步驟3的話可能會出現直接輸入密碼卡死或很久失敗情況
2.1.執行完update_xcode_plugins --restore, 在執行步驟3 可能直接是下面檢視
3.如果看不到Package Manager的情況可以嘗試直接新增UUID到info.plist檔案中,檢視命令
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
3.1 到對應的目錄路徑下面, 找到外掛並開啟顯示包內容並開啟info.plist檔案
cd /Users/xxxx/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
3.2 直接新增到裡面即可
UUID 新增info.plist檔案中
3.3 批量更新外掛的 DVTPlugInCompatibilityUUID 的命令(建議使用sudo方式執行)
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth3| xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`