Fastlane是一組工具套件,旨在實現iOS應用發佈流程的自動化,而且提供一個運行良好的持續部署流程,只須要運行一個簡單的命令就能夠觸發這個流程。html
Fastlane是一個ruby腳本集合,其中囊括了向蘋果商店提交新應用或更新已有應用所須要的最經常使用任務。ios
這個套件支持與Jenkins和CocoaPods,xctools等其餘第三方工具的集成,而且可以定義多個通道(lanes)以支持不一樣的部署目標,如應用商店,Beta測試和測試。git
fastlane典型的工做流程以下:github
lane :appstore do increment_build_number cocoapods xctool snapshot sigh deliver frameit sh "./customScript.sh" slack end
爲了瞭解到更多關於這個項目的信息,InfoQ採訪了Fastlane的發明者Felix Krause。ruby
持續交付/部署可以給iOS應用部署流程帶來的最大收益是什麼?在蘋果的審覈流程框架之下,這個工具可以多大程度地發揮做用?架構
最主要的收益就是可以在每次發佈一個更新或全新應用的時候能夠爲你節省大量的時間。這是iOS開發者必須親自完成的工做。app
在剛剛啓動這個項目的時候,我並不肯定是否可以將iOS應用發佈流程的各個方面徹底自動化,由於並無公開的API來實現它。使人高興的是,它的確可以正常運轉,並且我已經爲多家公司制定了完整的持續部署解決方案。框架
能否爲咱們簡單描述一下使用fastlane的典型的工做流程?其中最相關的定製化選項有哪些?工具
我主要在以下場景下使用fastlane:單元測試
- 在每次提交時執行測試(這包括單元測試和集成測試)
- 只建立新的屏幕截圖將其發送給客戶
- 構建並分發Beta版本
- 構建並分發至應用商店(這包括更新配置文件,建立新的屏幕截圖,上傳應用至應用商店並提交應用)
在http://fastlane.tools網站上能夠找到一些簡單的例子。每一個開發者均可以很方便地添加或刪除單個構建步驟,甚至能夠實現本身的構建步驟。
你認爲何類型的組織(例如獨立開發者,小型開發組織,大型企業等)可以從fastlane的使用中受益最多?
獨立開發者和處於初創階段的小型開發組織:這類組織一般尚未運行任何自動化流程,很容易就能夠開始使用fastlane。大型企業一般都已經有了某種類型的持續集成工具,他們須要適應fastlane的使用。
能否告訴咱們一些關於fastlane當前採用率的狀況?如今有什麼成功案例麼?
我不想自賣自詡,不過我能夠分享一些數字:
- 所有fastlane工具大約有20000次安裝
- 在第一次發佈後的三天內有10000人次訪問了http://fastlane.tools
- 全部 工具和fastlane曾經入選Github當月Ruby趨勢庫
我已經從一些知名的公司獲得反饋稱,他們已經成功地將fastlane工具集成到了他們的發佈流程中。Panic是我獲得反饋最大的公司之一。
驅動你建立fastlane的過程是怎樣的呢?
我最初只爲一個客戶實現了fastlane,當時的fastlane與他們的系統結合十分緊密。當我跟其餘的開發者談論此事時,他們很是興奮而且詢問他們是否也可使用這個工具。這就是爲何我以一種十分靈活而且文檔齊全的方式開發這個工具以便將其共享給其餘iOS開發者。
最初我只開發了deliver。以後我意識到還缺乏一些工具,這就是爲何我又建立了另外四個工具(snapshot,frameit,PEM和sigh)。由於這些程序都是獨立運行的,我又想到以某種方式將它們鏈接起來。也就在這時我有了fastlane的想法。
Fastlane是一個開源的工具集,能夠從Github獲得它的克隆。從官方指南中能夠了解到關於安裝、配置和使用這些工具的更多細節信息。
查看英文原文:Fastlane Brings Continuous Deployment to iOS