前些天看到一篇講增強xcode開發(fā)效率的文章,文末提到Automator的妙用。雖然自己以前也簡單折騰過Automator,但沒有真正認識到應該如何使用Automator。這些天搗鼓一番后,跟大家分享一下我的收獲,同時也希望能起到拋磚引玉的作用,各位也能分享一下你們的心得。
什么是AutoMator Workflow
在日常開發(fā)或者使用mac的時候,我們難免會做一些重復性的工作。但是利用 Automator Workflow 就可以快速、高效、毫不費力的完成你所有費時、重復性的手動任務。只要拖動項目,用鼠標點擊就可以輕松的創(chuàng)建自定義的 Workflow。還可以使用你的 Automator Workflow 執(zhí)行一次或多次任務——甚至可以與朋友共享 Workflow。
你可以輕松的自動處理很多工作,諸如給大量文件重命名,也可以運行事先編寫好的腳本。
AutoMator的類型
AutoMator常用的類型有三種WorkFlow(工作流程)、Application(應用程序)、Service(服務).工作流程相當于是一個AutoMator文檔,只能在Automator內(nèi)部運行;應用程序是自運行的工作流程,拖到應用程序上的任何文件或文件夾均將作為該工作流程的輸入;服務是可在整個 OS X 使用的關聯(lián)工作流程,它們從當前應用程序或 Finder 接收文本或文件,服務會出現(xiàn)在“服務”菜單中。由于服務類型的Automator在使用上最為簡便,所以以下均以服務類型的Automatore做例子。
AutoMator的界面
- 可選擇的動作列表/變量。
- 每個動作/變量的介紹。
- 工作流區(qū)域,一系列的動作在這里組織。
- 某個具體的動作的選項界面。
- 輸入輸出標記,有這個標記的時候表明上一個動作的輸出會作為下一個動作的輸入。
- Debug工具欄,調(diào)試work flow的時候使用
- 日志,Debug的時候會輸出每一個動作的執(zhí)行情況。
例子一:設置圖片為retina資源
作為一個iOS開發(fā)者,在圖片命名中加上@2x表示其為高清圖片是很常見的動作。我們可能會使用應用、腳本等手段來實現(xiàn)這個機械性動作。但是使用AutoMator,我們可以直接在Finder中選中文件,然后右鍵給其加上@2x。
- 新建一個服務類型的AutoMator
- 修改獲取的內(nèi)容為文件或文件夾,應用為Finder
- 添加“獲取文件夾內(nèi)容”的動作,這樣我們的操作就可以對文件夾下的所有文件生效
- 添加“過濾Finder項目”,因為我們只想對圖片文件進行操作,而且我們不想重復添加@2x
- 添加“給Finder項目重命名”,選擇添加文本,給名稱后面加上@2x。
界面
OK,大功告成。保存為“設置為retina圖片”?,F(xiàn)在在Finder隨便選擇一個圖片,右鍵選擇服務->設置為retina圖片,可以看到文件名被自動添加上@2x。
例子二:在Finder打開
公司的項目中,圖片資源都是用腳本的方式拷貝到設備上,在工程里面看不到,以至于每次在Finder中尋找圖片文件都比較麻煩。現(xiàn)在用AutoMator就簡單多了。
- 新建一個服務類型的AutoMator
- 修改應用為Xcode
- 添加“運行shell腳本”,在右上角的“傳遞輸入”改為“作為自變量”。這樣在我們的腳本中就可以使用“$@”代表輸入內(nèi)容。然后腳本內(nèi)容輸入“basename $@ .png”(去掉后綴)。
- 再次添加“運行shell腳本”,同樣設置為“作為自變量”。腳本內(nèi)容輸入“mdfind -name $@”(用Spotlight搜索)
- 添加“顯示Finder項目”,這樣工作流運行結(jié)束的時候就會自動打開Finder了。
保存后,打開Xcode,在代碼中隨意選中一個文件名(比如"logo.png"),然后右鍵選擇“在Finder打開”(如果沒有找到,就找服務里面)。然后你就可以看到相應的文件在Finder中打開了。
調(diào)試
有時候我們寫出來的工作流不是馬上就能工作的,這個時候就需要調(diào)試。在Debug面板點擊“步驟”按鈕就自動開始逐步調(diào)試,日志面板會輸出每一步執(zhí)行的信息。需要注意的是,像之前我們添加的Automator都是服務類型,那么調(diào)試的時候我們需要使用“獲得指定的文本”之類的工作來代替輸入源。