手摸手帶你玩轉Xcode Extensions

題圖:from imgurgit

事情是這樣的前段時間看到,E神寫了個新玩具叫Code Friend很酷炫,私下裏給E神說拿來推廣讓iOSTips的讀者體驗一番,E神說目前功能還不完善,等再牛逼一點再拿來分享,而後就有了接下來的分享。github

有沒有這樣的體驗,咱們常常要打開終端,跳轉到當前工程目錄,而後在執行pod install;咱們在編譯的時候想要清除緩存須要先打開Xcode偏好設置,再選到location,再跳到DerivedData目錄;幾年Xcode更新過來,128G的你天天都在考慮刪除哪一個文件,仔細想一想天天這類重複工做都有不少?swift

XcodeWay推薦vim

今天就帶來一款Xcode擴展XcodeWay解放你的雙手,讓你再也不重複勞動,再也不每次Google CoreSimulator究竟在哪一個路徑,再也不手動打開終端跳轉目錄而後Pod Install,再也不手動清除Xcode DerivedData緩存。xcode

功能

  • 一鍵打開工程根目錄
  • 一鍵打開終端並跳到工程根目錄
  • 一鍵打開DerivedData目錄
  • 一鍵打開Provisioning Profiles目錄
  • 一鍵打開Archives目錄
  • 一鍵打開DeviceSupport目錄
  • 一鍵Pod Install
  • 一鍵Pod update
  • 一鍵清除DerivedData

可擴展

若是你有其餘好的想法,可實現Navigator協議,添加更多酷炫的功能。緩存

protocol Navigator {  func navigate()
  var title: String { get }
}
複製代碼

安裝

傳送門:github.com/GesanTung/X…bash

按理說文章寫到這裏能夠能夠結束了,可是老峯認爲咱們不該該僅僅只是會使用工具,還應該懂工具的製做原理,甚至本身製做工具。app

Xcode plugins Tips工具

其實在Xcode8以前Apple默許開發者自定義Xcode plugins插件,在2015年底,有一個惡意插件(XcodeGhost)植入Xcode,當時又很多開發者經過非官方渠道下載到了這個Xcode,這款惡意軟件就使用插件機制,爲了不這類潛在的惡意軟件,在WWDC 2016蘋果宣佈Xcode Source Editor Extension爲第三方擴展Xcode的惟一途徑。這意味着,從Xcode 8開始,Xcode plugins插件如Xvim,Injection plugin都不能不能被Xcode加載使用了。 Tips:事實上儘管不支持Xcode plugins被官宣了,但咱們依然能夠經過重籤Xcode,而繼續使用這些效率插件,plugins並不是今天主線,關於如何安裝簡單刷下副本:spa

第一步:製做證書

第二步:重籤Xcode

codesign -f -s XcodeSigner /Applications/Xcode.app

重籤以後早些時候的插件如Injection plugin,Xvim等等均可以繼續使用了,可是有一點,重籤後的Xcode是沒法提交App到AppStroe的,因此咱們可能須要一個再裝一個官方的Xcode版原本提交APP,固然如今不少團隊構建上傳都有專人自動化負責,因此咱們大可沒必要關心提交的問題。

Xcode Extensions簡介

回到本文的重點,咱們今天的主題是Xcode Extensions,其實無論Baidu仍是Google介紹它的文章都不少,我這裏引用官方的介紹說一下:

New Xcode extensions for the source editor let you customize your coding experience. Use extensions to navigate within your editor’s text, and select, modify, and transform your code. Bind your favorite extensions to a keyboard shortcut to make common reformatting tasks a snap. Xcode includes a new template so you can easily create editor extensions and distribute them on the Mac App Store, or sign your extensions with your Developer ID to share them online. And because extensions run in a separate process, Xcode stays safe and stable.

因爲XcodeKit暴露的接口太簡單,甚至到了Xcode10其提供的功能也依然有限,可是依然有開發者製做了有多有趣的Xcode Extensions在Xcode->Xcode Extensions能夠看到不少發佈到AppStore的優秀擴展。

XcodeWay實現

說下XcodeWay的製做原理吧,咱們知道Xcode Extensions目前侷限於操做Xcode當前選中的文件,好比給當前文件添加註釋,對當前文件作Code Lint等等,XcodeWay是怎樣實現一鍵Pod Install,一鍵清除DerivedData這樣的功能呢?

XcodeWay fork自onmyway133,以前做者提供的功能比較單一,就是打開各類目錄,我站在大佬額肩膀上作了下修改,支持了Pod操做,文件刪除操做,模擬器刪除操做(要知道用了幾年的Xcode模擬器可能會有20多g),主要原理是經過Extensions執行AppleScript腳本(這貨大概都懂吧,以前的文章也說過),在腳本中實現各類文件的操做,各類應用的喚起如喚起終端,關鍵代碼以下:

1.執行AppleScript腳本方法

執行Pod install代碼實現

菜單選中Do Pod Install

推薦閱讀:

相關文章
相關標籤/搜索