自動化打包之fastlane--(1) 研究之必須提前瞭解的幾點
阿新 • • 發佈:2019-01-11
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,形成視覺化打包介面,一鍵打包