1. 程式人生 > >手摸手帶你玩轉Xcode Extensions

手摸手帶你玩轉Xcode Extensions

題圖:from imgur

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

有沒有這樣的體驗,我們經常要開啟終端,跳轉到當前工程目錄,然後在執行pod install;我們在編譯的時候想要清除快取需要先開啟Xcode偏好設定,再選到location,再跳到DerivedData目錄;幾年Xcode更新過來,128G的你每天都在考慮刪除哪個檔案,仔細想想每天這類重複工作都有很多?

XcodeWay推薦

今天就帶來一款Xcode擴充套件XcodeWay解放你的雙手,讓你不再重複勞動,不再每次Google CoreSimulator究竟在哪個路徑,不再手動開啟終端跳轉目錄然後Pod Install,不再手動清除Xcode DerivedData快取。

功能

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

可擴充套件

如果你有其他好的想法,可實現Navigator協議,新增更多酷炫的功能。

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

安裝

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

按理說文章寫到這裡可以可以結束了,但是老峰認為我們不應該僅僅只是會使用工具,還應該懂工具的製作原理,甚至自己製作工具。

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並非今天主線,關於如何安裝簡單刷下副本:

第一步:製作證書

第二步:重籤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

推薦閱讀: