工具篇---xcode外掛使用
原理
在Xcode啟動的時候,Xcode將會尋找位於~/Library/Application Support/Developer/Shared/Xcode/Plug-ins資料夾中的字尾名為.xcplugin的bundle作為外掛進行載入(執行其中的可執行檔案),這就可以令我們光明正大合法合理地將我們的程式碼注入(雖然這個詞有點不好聽)Xcode,並得到執行。因此,想要建立Xcode外掛,我們需要建立Bundle工程並將編譯的bundle放到上面所說的外掛目錄中去,這就是Xcode外掛的原理。
因為是注入方式新增外掛,所以如果外掛有問題閃退,那麼Xcode也會閃退。
使用之前請先備份Xcode,安裝外掛後不可打包上傳Appstore,使用請謹慎!
蘋果為了避免類似 Xcode Ghost 事件的再次發生,Xcode8 禁用了外掛機制,而開放了另一種形式:Source Editor extensions,但是這種形式侷限性太大。本文介紹Xcode 8 繼續使用外掛。
實踐篇
恢復Xcode 8 外掛
-
原Xcode 外掛安裝目錄
tips:如果遇到外掛引起Xcode crash的情況,可在改目錄下刪除對應外掛
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
-
刪除所有原外掛
cd ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins rm -rf ../Plug-ins
-
對Xcode進行重簽名
鑰匙串訪問 -> 證書助理 -> 建立證書
名稱:XcodeSigner
身份型別:自簽名根證書
證書型別:程式碼簽名
-
期間允許所有許可權
sudo codesign -f -s XcodeSigner /Applications/Xcode.app
Alcatraz
Alcatraz 是一個幫你管理 Xcode 外掛、模版以及顏色配置的工具。它可以直接整合到 Xcode 的圖形介面中,讓你感覺就像在使用 Xcode 自帶的功能一樣。
安裝和刪除
使用如下的命令列來安裝 Alcatraz:
curl -fsSL https://raw.github.com/alcatraz/Alcatraz/master/Scripts/install.sh | sh
修改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'
如果你不想使用 Alcatraz 了,可以使用如下命令來刪除:
rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
rm -rf ~/Library/Application\ Support/Alcatraz
重啟Xcode,選擇 load bundles
通過 Alcatraz 安裝外掛後,重啟Xcode不出現 load bundles 提示框,執行“修改UUID”,再重啟Xcode。
某些外掛無法通過Alcatraz安裝,可直接通過github下載開啟。
參考連結
相關文章
- xcode 外掛之KSImageNamed-XcodeXCode
- Xcode外掛FlyCodingXCode
- xcode8繼續愉快的使用外掛XCode
- 在xcode8裡繼續使用外掛XCode
- Xcode 裝逼外掛 ActivatePowerModeXCode
- xcode 7.3 安裝外掛管理XCode
- Xcode8外掛安裝XCode
- PostgreSQL影像搜尋外掛使用篇SQL
- Xcode常用外掛使用及自動生成幫助文件XCode
- Xcode外掛優缺點對比(推薦20款外掛)XCode
- 解決xcode升級外掛失效XCode
- Chrome開發者工具不完全指南(六、外掛篇)Chrome
- Xcode外掛: 編碼效率神器 FlyCodingXCode
- 教你如何用Swift編寫Xcode外掛SwiftXCode
- Xcode6外掛開發入門XCode
- iOS 開發者能用上的 10 個 Xcode 外掛iOSXCode
- iOS開發大神必備的Xcode外掛iOSXCode
- Xcode 升級,外掛不好用解決方法XCode
- 10款提高 iOS 開發效率的 XCode 外掛iOSXCode
- Headshot外掛如何使用?Headshot外掛使用教程
- 工具最佳化篇之IDEA新UI+日常外掛IdeaUI
- 【iOS工具】註釋外掛 VVDocumenter-Xcode 的安裝使用及誤點選“Skip Bundle”的解決辦法!...iOSXCode
- 【iOS工具】註釋外掛 VVDocumenter-Xcode 的安裝使用及誤點選“Skip Bundle”的解決辦法!iOSXCode
- Android外掛化開篇Android
- Flutter外掛開發---iOS篇FlutteriOS
- fastadmin的【外掛管理】外掛使用教程AST
- [-Flutter外掛篇 1-] 從自定義外掛開始說起Flutter
- HtmlWebpackPlugin外掛和HtmlWebpackInlineSourcePlugin外掛的使用HTMLWebPlugininline
- WordPress外掛掃描工具plecost
- Flutter外掛開發---Android篇FlutterAndroid
- Head 外掛使用
- PhotoSwipe外掛的使用
- 個人使用外掛合集
- Eclipse安裝lombok外掛及外掛使用案例EclipseLombok
- Chrome外掛:切圖壓縮工具Chrome
- 急速 debug 實戰三(Node - webpack外掛,babel外掛,vue原始碼篇)WebBabelVue原始碼
- 使用Autodesk Vault外掛嚮導輕鬆建立Vault外掛
- [-Flutter外掛篇 2-] 認識MethodChannelFlutter