iOS使用fastlane自動化打包

收藏待读

最近好多微信文章都推薦fastlane,自己也總結一下我使用fastlane的過程吧。

其實自動化打包的工具有很多,比較流行的有 Jenkinsfastlane ,原來使用 Jenkins ,感覺這個工具比較麻煩,需要配置的東西非常多,還需要倉庫地址等等很多信息,然而 fastlane 是比較簡單快速的,(ios,Android都支持),github地址:

https://github.com/fastlane/fastlane 文檔地址: https://docs.fastlane.tools/

github上有 24014多星星。3659個fork,所以大量的開發者信任並一起維護他。

安裝前的準備工作

1、首先確認是否安裝了ruby,終端查看下ruby版本

使用命令 ruby -v

iOS使用fastlane自動化打包

ruby查看

2、確認是否安裝了Xcode命令行工具

使用命令 xcode-select --install

iOS使用fastlane自動化打包

xcode工具檢查

如果是圖中的情況是安裝成功

如果出現:

iOS使用fastlane自動化打包

開發工具

就點擊安裝就行了。。。

開始正式安裝fastlane

1、安裝fastlane(兩種方式都可以)

# Using RubyGemssudo gem install fastlane -NV
或者# Alternatively using Homebrewbrew cask install fastlane

個人操作

執行命令 sudo gem install fastlane -NV

iOS使用fastlane自動化打包

執行報錯

錯誤原因:應該是 https://gems.ruby-china.org/  沒有找到包,我們可以嘗試訪問這個地址: https://gems.ruby-china.org/

出現這個界面

iOS使用fastlane自動化打包

源地址報錯

也就是我們需要更換源了

1、查看源: gem sources
2、刪除源: gem sources --remove https://gems.ruby-china.org/
3、更換源: gem sources -a https://gems.ruby-china.com

具體步驟:

iOS使用fastlane自動化打包更換源

繼續安裝,執行命令 sudo gem install fastlane -NV

iOS使用fastlane自動化打包

安裝成功

2、使用

1、打開終端,cd 到你的項目下

命令:  cd + 項目目錄
2、執行fastlane命令  fastlane init

如圖

iOS使用fastlane自動化打包

fastlane init

下面會有四個選項供你選擇

  1. 自動截屏。幫我們自動截取APP中的截圖

  2. 自動發佈beta版本用於TestFlight

  3. 自動發佈到AppStore

  4. 手動設置

選擇4 ,會出現如圖的操作

iOS使用fastlane自動化打包

步驟

一直按enter鍵就可以了

如圖就成功了

iOS使用fastlane自動化打包

成功

配置

我們項目下 fastlane 有兩個文件 AppfileFastfile

iOS使用fastlane自動化打包

文件

Appfile 文件

# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
# apple_id("[[APPLE_ID]]") # Your Apple email address

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

app_identifier 用於指定APP的 bundle idapple_id 指的是你的 AppleID

Fastfile 文件

# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  lane :custom_lane do
    # add actions here: https://docs.fastlane.tools/actions
  end
end

lane :custom_lane do 中的 custom_lane 是函數的名稱,打包執行命令的時候使用。

# add actions here: https://docs.fastlane.tools/actions 這塊就是讓我們加具體執行的插件、命令等操作用於打包。

簡單打包用於測試,可打包成 ad-hoc 或者 development

下面是我的配置

default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  lane :NonTeacher do  #函數名稱,執行打包的時候使用

    time = Time.new.strftime("%Y%m%d") #獲取時間格式
    version = get_version_number#獲取版本號
    ipaName = "Release_#{version}_#{time}.ipa"
    gym(
       scheme:"NonTeacher", #項目名稱
       export_method:"ad-hoc",#打包的類型
       configuration:"Release",#模式,默認Release,還有Debug
       output_name:"#{ipaName}",#輸出的包名
       output_directory:"./build"#輸出的位置

     )

  end
end

終端先 cd 到項目下,然後執行命令 fastlane NonTeacher
下面就是打包成功的截圖了

iOS使用fastlane自動化打包

打包成功

然後我們就可以在項目下看到包了

iOS使用fastlane自動化打包

包的顯示

關於gym插件的更多用法可以在這裡查看 https://docs.fastlane.tools/actions/gym/

上傳到蒲公英或者 fir

1、上傳蒲公英

1)、cd到項目下, 安裝 pgyer 插件 執行命令 fastlane add_plugin pgyer

iOS使用fastlane自動化打包

安裝成功

2)、重新編寫項目目錄下的 Fastfile 文件,如下:

iOS使用fastlane自動化打包

上傳蒲公英

3)、cd 到項目下,執行命令 fastlane NonTeacher  ,打包上傳成功

iOS使用fastlane自動化打包

打包上傳成功

注意點:

如果遇到這種情況:

Could not find action, lane or variable 'pgyer'. Check out the documentation

可能是你安裝 pgyer 插件的時候,不是在項目下安裝的,這個插件必須在項目下面安裝

2、上傳至 fir
1)、cd到項目下, 安裝 fir 插件,執行命令 fastlane add_plugin firim

iOS使用fastlane自動化打包

安裝成功

2)、重新編寫項目目錄下的 Fastfile 文件,如下:

iOS使用fastlane自動化打包

編輯Fastfile

3)、cd 到項目下,執行命令 fastlane NonTeacher  ,打包上傳成功

iOS使用fastlane自動化打包

上傳到appstore

本人沒有嘗試過,還是習慣用xcode去上傳,感覺放心,如果需要了解,可以看看這篇文章 https://www.jianshu.com/p/c09097211cd4

1、如果執行 sudo gem install fastlane -NV

報錯:ERROR: While executing gem … (Errno::EPERM) Operation not permitted – /usr/bin/commander

換成這樣的安裝命令:

sudo gem install -n /usr/local/bin fastlane

2、如果執行 fastlane init 一直停留在bundle update 不動,如圖

iOS使用fastlane自動化打包

bundle update

兩種解決方法如下:

1)、結束進程 ctrl +c ,刪除項目下的 fastlane 文件夾,使用 gem cleanup 清理一下,重新cd到項目下執行 fastlane init

2)、

查看一下你的源    gem sources -l
如果不是 https://gems.ruby-china.com
嘗試換成 https://gems.ruby-china.com 這個源
先移除你原本的源 gem sources  --remove  + 源名稱
增加新的源 gem sources --add https://gems.ruby-china.com

這篇文章說了一下經常用的一些插件,大家可以看看 https://www.jianshu.com/p/5119c115ec90

基本上就是這些,更多的東西,需要我們自己去探索,了解。

希望大家能提出寶貴的意見,可以給我留言,也可以發郵件到我的郵箱: [email protected]

謝謝大家,如果你有更好的想法或文章請告知,不勝感激。

作者:誰遇而安

鏈接:https://www.jianshu.com/p/6ab8d2b7253a

原文 : CocoaChina

相關閱讀

免责声明:本文内容来源于CocoaChina,已注明原文出处和链接,文章观点不代表立场,如若侵犯到您的权益,或涉不实谣言,敬请向我们提出检举。