fastlane iOS自動化打包

一、安裝xcode命令行工具

xcode-select --install,如果沒有安裝,會彈出對話框,點擊安裝。如果提示xcode-select: error: command line tools are already installed,use "Software Update" to install updates表示已經(jīng)安裝

二、安裝Fastlane

sudo gem install fastlane -NV或是brew install fastlane我這里使用brew安裝的

安裝完了執(zhí)行fastlane --version,確認(rèn)下是否安裝完成和當(dāng)前使用的版本號。

確認(rèn)安裝完之后執(zhí)行 export PATH="$HOME/.fastlane/bin:$PATH" ,然后退出終端,再重新打開就可以使用fastlane命令了

三、初始化Fastlane

cd到你項目根目錄下執(zhí)行

fastlane init

enter 鍵之后會打印出一下信息

圖1

這里會打印四個選項,問你想要用Fastlane做什么?可以根據(jù)我們的需要選擇對應(yīng)的選項,我這里選的是manual。

回車就會出現(xiàn)如下信息:

圖 2

之后可能會報這個錯誤:

圖 3

根據(jù)提示 sudo gem install unf_ext -v '0.0.7.6', 安裝成功信息如下:

圖4

然后把iOS工程目錄下的fastlane文件夾刪掉,重新fastlane init 就好了。然后打開fastlane文件夾,里面會有Appfile 和?Fastfile 兩個文件。執(zhí)行打包腳本是寫在Fastfile這個文件里面的,? 腳本大概如下:


具體打包只需要在項目工程下面運行fastlane action_name 就可以了,打包之前一定要確保對應(yīng)的證書和profile文件要配置好。

上傳到蒲公英的時候可能會報如下的錯誤:

圖5

這是因為沒有安裝蒲公英插件。如果要上傳到蒲公英,需要安裝蒲公英插件,安裝蒲公英插件在終端輸入 fastlane add_plugin pgyer 命令執(zhí)行,根據(jù)提示安裝就可以.

如果安裝遇到下面的錯誤?Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

圖6

則執(zhí)行如下命令:bundle install 。然后再執(zhí)行fastlane add_plugin pgyer 就可以了

四、使用match進(jìn)行團(tuán)隊證書管理

match是fastlane的一個功能組件, 能自動從蘋果官方上下載證書和pp文件同步到我們的git倉庫中。

1、match初始化

直接到iOS工程目錄下面,執(zhí)行fastlane match init 命令,執(zhí)行之后會出現(xiàn)如下的選項,就是選擇使用git或是google_cloud的方式來托管證書,這里我們選git,選1就可以了

圖7

選擇git方式之后就會要求你輸入Git倉庫地址,自己創(chuàng)建一個用于管理證書的倉庫地址填寫進(jìn)來就可以了。

圖8

首次運行?match?時,需要設(shè)置 GIT 存儲庫的密碼。 一定要記住此密碼,因為在不同計算機(jī)上運行 match 時,將需要此密碼。?

如圖9所示,輸入Git倉庫地址,按enter鍵就的到如下信息,說明Matchfile文件已經(jīng)創(chuàng)建成功。

圖9

工程目錄下打開 fastlane => Matchfile 文件,如下圖所示

圖10

可以看到Matchfile文件中有幾個變量,git_url就是我們之前輸入的保存證書的git倉庫,storage_mode就是證書托管方式 'git',是我們之前選好的。type對應(yīng)的是證書類型,默認(rèn)是development,app_identifier是對應(yīng)的bundleID,可以填多個,username是我們的蘋果開發(fā)者賬號AppleID,這些可以在這里配置,避免后續(xù)命令重復(fù)讓你輸入。

2、舊證書清理

配置完成之后就可以創(chuàng)建證書了,如果之前的證書比較亂可以通過以下命令分別清理對應(yīng)的證書

fastlane match nuke development

fastlane match nuke distribution

fastlane match nuke adhoc


3、生成新的證書

在工程目錄下分別執(zhí)行

fastlane match development

fastlane match adhoc

fastlane match appstore

即可。這個過程會讓你輸入appleID和bundleID,如果你之前沒有寫在Matchfile文件里面寫的話。

4、團(tuán)隊管理

團(tuán)隊中其他人新加入進(jìn)來的話不需要在當(dāng)前工程下再初始化match,只需要獲取證書即可。需要執(zhí)行的命令如下:

fastlane match development --readonly

fastlane match adhoc --readonly

fastlane match appstore --readonly

并根據(jù)提示,輸入上文說所的在match初始化時設(shè)置的存儲證書的git倉庫的密碼即可。

這里要注意一下,當(dāng)我們輸入以上命令的時候可能會報出如下錯誤:

[!] Could not find option 'storage_mode' in the list of available options: git_url, git_branch, type, app_identifier, username, keychain_name, keychain_password, readonly, team_id, git_full_name, git_user_email, team_name, verbose, force, skip_confirmation, shallow_clone, workspace, force_for_new_devices, skip_docs, platform。

這個錯誤的原因是因為在你的Matchfile文件中設(shè)置了storage_mode變量,把這個變量注釋掉就可以了(目前還不知道什么原因,初始化match的電腦沒有這個問題,其他人就有這個問題)。

xcode要取消Automatically manage signing,并將獲取到的pp文件放到對應(yīng)的Signing配置中,至此就配置完成啦!

五、設(shè)備管理

在目錄 fastlane/ 下創(chuàng)建設(shè)備列表文件,devices.txt, devices.txt內(nèi)容格式如下圖所示

圖11

在Fastfile中添加一個action, 如下圖所示:


圖12

當(dāng)有新設(shè)備加入時,只要按照格式往devices.txt文件添加設(shè)備ID等信息,再在工程目錄下執(zhí)行

fastlane add_devices就可以了。這一般出錯的原因可能就是填寫的格式不對,所以格式注意一下就行了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GitHub地址:https://github.com/fastlane/fastlane 文檔地址:https:...
    沈宥閱讀 2,580評論 1 5
  • 公司開始讓使用自動打包,一方面使用xcode打包太浪費時間,還要時刻關(guān)注打包的進(jìn)度進(jìn)行上傳發(fā)布等等。搞了兩天終于完...
    出來遛狗了閱讀 1,302評論 0 3
  • fastlane運行所需要的環(huán)境: OS X 10.9以上 Ruby 2.0 以上 Xcode 擁有一個開發(fā)者賬號...
    阿姣_0405閱讀 3,258評論 0 4
  • 毋庸置疑,Jenkins對我們打包的幫助還是很大的——被測試的同學(xué)追著要IPA包的日子終于一去不復(fù)返了。但作為追求...
    iOS逆向開發(fā)閱讀 1,667評論 2 10
  • 前言:一直有聽過腳本一鍵打包審核,但是自己一直沒在意。在微信公眾號看到ios一鍵打包的文章,突然想想自己每次從打包...
    光彩影閱讀 5,680評論 1 42

友情鏈接更多精彩內(nèi)容