1. 程式人生 > >自動化打包之fastlane--(1) 研究之必須提前瞭解的幾點

自動化打包之fastlane--(1) 研究之必須提前瞭解的幾點

1. rvm

  • RVM 是一個命令列工具,可以提供一個便捷的多版本 Ruby 環境的管理和切換。
  • 就是方便管理Ruby的
  • 如何安裝rvm
//親測,這個命令是很好用的,可以很快安裝rvm
curl -L https://get.rvm.io | bash -s stable
zhouyudeMacBook-Pro:~ zhouyu$ curl -L https://get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100
194 100 194 0 0 203 0 --:--:-- --:--:-- --:--:-- 202 100 24361 100 24361 0 0 16771 0 0:00:01 0:00:01 --:--:-- 16771 Downloading https://github.com/rvm/rvm/archive/1.29.3.tar.gz Downloading https://github.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc Found PGP signature at: 'https://github.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc'
, but no GPG software exists to validate it, skipping. Installing RVM to /Users/zhouyu/.rvm/ Adding rvm PATH line to /Users/zhouyu/.profile /Users/zhouyu/.mkshrc /Users/zhouyu/.bashrc /Users/zhouyu/.zshrc. Adding rvm loading line to /Users/zhouyu/.profile /Users/zhouyu/.bash_profile /Users/zhouyu/.zlogin. Installation of
RVM in /Users/zhouyu/.rvm/ is almost complete: * To start using RVM you need to run `source /Users/zhouyu/.rvm/scripts/rvm` in all your open shell windows, in rare cases you need to reopen all shell windows.
  • 切換到rvm環境
//安裝不對時,不安裝rvm下面兩個路徑找不到
source ~/.bashrc
source ~/.bash_profile
  • 設定環境變數,fastlane需要設定一些環境變數才能正確執行,如果當前的語言環境沒有設定為UTF-8,會導致構建和上傳的時候出現問題。
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
//檢視rvm版本
rvm -v
rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

如何刪除rvm

終端中鍵入:

rvm  implode


刪除命令最後的輸出:表示成功了
為了保險起見還需要執行(自己的Users目錄中刪除)下面的命令

cd ~ ; sudo rm -rf .rvm .rvmrc   /etc/rvmrc ;gem uninstall rvm

2. ruby

  • 是一門與perl,python類似的指令碼語言,與rails框架結合起來用
  • fastlane是用Ruby語言編寫的一套自動化工具集和框架,每一個工具實際都對應一個Ruby指令碼,用來執行某一個特定的任務,而fastlane核心框架則允許使用者通過類似配置檔案的形式,將不同的工具有機而靈活的結合在一起,從而形成一個個完整的自動化流程
  • mac電腦自帶ruby,也可以自己安裝

檢視ruby的版本

rvm list known
zhouyudeMacBook-Pro:~ zhouyu$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head

# for forks use: rvm install ruby-head-<name> --url https://github.com/github/ruby.git --branch 2.2

# JRuby
jruby-1.6[.8]
jruby-1.7[.27]
jruby[-9.1.13.0]
jruby-head

# Rubinius
rbx-1[.4.3]
rbx-2.3[.0]
rbx-2.4[.1]
rbx-2[.5.8]
rbx-3[.84]
rbx-head

# Opal
opal

# Minimalistic ruby implementation - ISO 30170:2012
mruby-1.0.0
mruby-1.1.0
mruby-1.2.0
mruby-1[.3.0]
mruby[-head]

# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2012.02]

# Topaz
topaz

# MagLev
maglev[-head]
maglev-1.0.0

# Mac OS X Snow Leopard Or Newer
macruby-0.10
macruby-0.11
macruby[-0.12]
macruby-nightly
macruby-head

# IronRuby
ironruby[-1.1.3]
ironruby-head
  • ruby控制的fastlane
#釋出到AppStore

lane :release do
  #增加build版本號,需要先配置build setting
  increment_build_number
  #pod資源更新
  cocoapods
  #打包
  gym
  #釋出到AppStore
  deliver(force: true)
  #釋出testflight測試
  testflight
end

3. gem

  • Mac 自帶 gem
  • ruby 是一種語言,是某些軟體包程式碼的執行環境。而gem是管理這些基於ruby程式的程式。
  • gem源安裝被牆,常見的gem源
http://gems.github.com/ 
http://rubygems.org/ 
https://ruby.taobao.org/
https://gems.ruby-china.org
  • gem是Ruby環境中的包管理器,好比於Python中的pip與JavaScript本地Node.js的npm,非常有名和強大,
  • gem就是ruby的軟體包. 一個gem就是一個ruby軟體.
  • Gem是封裝起來的Ruby應用程式或程式碼庫。

4. brew

  • Homebrew簡稱brew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體,可以說Homebrew就是mac下的apt-get、yum神器
brew update          # 更新 Homebrew 的資訊
brew outdated        # 看一下哪些軟體可以升級
brew upgrade <xxx>   # 如果不是所有的都要升級,那就這樣升級指定的

brew upgrade; brew cleanup    # 如果都要升級,直接升級完然後清理乾淨

5. bundler

  • 使用bundler管理多版本的Gem,有了rvm來管理多版本的ruby環境,我們還需要一個能管理多版本gem(比如rails)的工具,那就是bundler了,
  • 那麼bundle install和gem install的區別是什麼呢? 我的理解是: bundle是用來管理維護專案的軟體包的; gem則是用來管理具體的每一個軟體包的.
  • 專案的根目錄會有一個Gemfile, 裡面定義了該專案的軟體包依賴的相關事項. 發現它預設是從rubygems.org這個網站獲取內容的. 我想把源換成taobao.org. 可以修改Gemfile檔案. 把source那一行改成: source ‘http://ruby.taobao.org/

  • Gemfile檔案中的 gem ‘fastlane’,就類似於Podfile檔案中的 pod ‘AFNetworking’

  • bundle install執行完之後, 會把當前的軟體包環境做一個快照, 放到Gemfile.lock檔案中.
  • bundle exec [command] 表示使用Gemfile中的指定的軟體來執行command.
  • 相等於多個RubyGems批處理執行。在配置檔案gemfile裡說明你的應用依賴哪些第三方包,他自動幫你
  • 下載安裝多個包,並且會下載這些包依賴的包。

安裝

gem install bundler
//如果提示沒有許可權,就用下線這個,需要輸入電腦密碼
sudo gem install bundler

簡單地來說,就是rvm管理ruby,ruby管理gem,bundle管理gem

6. fastlane

首先要安裝xcode-select

xcode-select --install

這裡寫圖片描述

  • fastlane是用Ruby語言編寫的一套自動化工具集和框架,每一個工具實際都對應一個Ruby指令碼,用來執行某一個特定的任務,而fastlane核心框架則允許使用者通過類似配置檔案的形式,將不同的工具有機而靈活的結合在一起,從而形成一個個完整的自動化流程。
sudo gem install fastlane --verbose

7. Gemfile

  • 定義你的應用依賴哪些第三方包,bundle根據該配置去尋找這些包。

8. match

  • match 是 fastlane 的一個功能元件, 採取了集中化方式來管理證書和 profile, 新建一個私有遠端 git 庫用來儲存證書和 profile, 一個 team 的開發者共用同一套證書, 方便了管理和配置, 同時 match 在證書過期時還會自動從蘋果官網下載新的證書並 push 到私有的 git 庫中, 保證證書同步,

  • 安裝match

  • 安裝成功以後會提示使用fastlane match代替match

//安裝成功以後會提示使用fastlane match代替match
sudo gem install match

這裡寫圖片描述

9. deliver

//安裝
sudo gem install deliver

上傳螢幕截圖,元資料,和APP到AppStore

10. Jenkin

用於整合fastlane,形成視覺化打包介面,一鍵打包