Fastlane入門:初級使用篇

一、初始化Fastlane

1.首先,打開終端窗口,cd 到項目目錄。進入項目文件夾之后,輸入下列命令

fastlane init

# 注意:如果你看到一個 “permission denied” 錯誤,你可能要在命令前加上 sudo。

幾分鐘之后,fastlane 會通過詢問下列問題(應該是英文,我幫你翻譯了),引導你完成設置過程:

請輸入 ?App Identifier (com.krausefx.app):

請輸入一個唯一的 app ID。請記住這個 ID,因為后面你還會用到它! 你的 Apple ID (fastlane@krausefx.com):

請輸入你的 Apple ID 是否創建 deliver 命令,即上傳 app 屏幕截圖、app 元數據和 app 更新到 App 商店或者蘋果的 TestFlight?(y/n)

輸入 n 是否創建 snapshot 命令,它會自動獲取 app 在所有語言和設備類型上的屏幕截圖?(y/n)

輸入 y 是否使用 sigh 命令,它會維護和下載 app 的 provisioning profile?(y/n)

輸入 y 可選項:app 的 scheme 名稱:(如果不需要,直接回車)

安裝完成之后,你會發現多了一個 fastlane 文件夾,里面內容如下:


其中:

Appfile, 用于存放 app ID 和你的 Apple ID。 Fastfile, 用于管理你所創建的 lane,lane 則會調用 action。

恭喜你!你現在可以使用 fastlane 了。

二、打包ipa


1.創建并編寫腳本

vim build_using_gym.sh

2.復制如下代碼到build_using_gym.sh文件中,修改項目名稱后保存

#!/bin/bash

#計時

SECONDS=0

#假設腳本放置在與項目相同的路徑下

project_path=$(pwd)

#取當前時間字符串添加到文件結尾

now=$(date+"%Y_%m_%d_%H_%M_%S")

#指定項目的scheme名稱

scheme="項目名稱"

#指定要打包的配置名

configuration="Adhoc"

#指定打包所使用的輸出方式,目前支持app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method參數

export_method='ad-hoc'

#指定項目地址

workspace_path="$project_path/項目名稱.xcworkspace"

#指定輸出路徑

output_path="project_path/APP"

#指定輸出歸檔文件地址

archive_path="$output_path/項目名稱_${now}.xcarchive"

#指定輸出ipa地址

ipa_path="$output_path/項目名稱_${now}.ipa"

#指定輸出ipa名稱

ipa_name="項目名稱_${now}.ipa"

#獲取執行命令時的commit message

commit_msg="$1"

#輸出設定的變量值

echo"===workspace path: ${workspace_path}==="

echo"===archive path: ${archive_path}==="

echo"===ipa path: ${ipa_path}==="

echo"===export method: ${export_method}==="

echo"===commit msg: $1==="

#先清空前一次build

gym--workspace ${workspace_path}--scheme ${scheme}--clean--configuration ${configuration}--archive_path ${archive_path}--export_method ${export_method}--output_directory ${output_path}--output_name ${ipa_name}

#上傳到fir 如果不想上傳就注釋掉

fir publish ${ipa_path}-T fir_token-c"${commit_msg}"

#輸出總用時

echo"===Finished. Total time: ${SECONDS}s==="

3.為腳本添加執行權限

chmod +x build_using_gym.sh

4.運行build_using_gym.sh腳本

./build_using_gym.sh

5.打包完成,success!

項目根路徑下APP文件夾

三、生成證書和 Provisioning Profile


在任意文本編輯器(推薦使用Xcode)中打開 Fastfile 文件,將內容替換為:

# Minimum version of fastlane

fastlane_version"1.104.0" ?#注意要換成你的fastlane版本

default_platform :ios

platform :ios do

#1

desc"Creating a code signing certificate and provisioning profile"

#2

lane :provision do

#3

produce(

app_name: 'ENTER_A_UNIQUE_APP_NAME_HERE', #換成你的APP name

language: 'English', ? #可以換語音

app_version: '1.0', ? #APP版本

sku: '123abc' ? ? #sku換成你自己的

)

#4

cert

#5

sigh(force: true)

end

error do |lane, ?exception|

# This block is called,if there was an error running a specific lane.

end

end

注意幾點:

將 ENTER_A_UNIQUE_APP_NAME_HERE 替換成一個唯一的 App 名字

用于描述這個 lane 的工作。一個 lane 是一個按順序執行的工作流。 執行名為 provision 的 lane。 produce 用指定的 ID、name、語言和版本號創建一個可用于 iTunes Connect 和 Developer Portal 的 app。 cert 創建一個新的私鑰和簽名請求,下載、安裝生成的證書并導入到鑰匙串。 sigh 創建了一個 provisioning profile。force 參數為 true,則每次運行時都會創建新的 provisioning profile,這樣就可以保證每次都使用正確的代碼簽名證書。

注意:sigh 默認創建的是 App Store 的發布 profile。如果你想創建 ad hoc profile,你需要使用 sigh(adhoc:true)。如果是開發 profile 則使用 sigh(development:true)。為簡單起見,在本文中你只需要創建 distribution profile。

你現在創建了第一個 lane。保存文件,打開終端進入到項目文件夾,輸入命令:

fastlane provision

大約一分鐘左右,fastlane 會問你 iTunes Connect 密碼,它會保存到你的 Mac 的鑰匙串里。輸入密碼,如果執行成功,你的終端窗口會顯示success(忘了截圖了...)

注意:如果你看到錯誤,例如 “Creation of apps of this type is not available”, 則請登錄你的 iTunes Connect,看一下是否有某些更新的協議需要你確認。

在進行下一步之前,你還需要在 Xcode 中進行某些修改。打開 XXXX.xcodeproj,選擇 XXXX Target,切換到 General 頁。將 bundle identifier 修改為初始化 fastlane 時輸入的 App ID。

在 Build Settings > Code Signing > Provisioning Profile 設為 “ <new APP> AppStore”。然后在 Code Signing Identity 選擇和這個 provisioning profile 相對應的 ID:

注意,code signing identity 應該和 provisioning profile 中的 identities 相匹配。這樣,當 gym 編譯 IPA 文件時會使用新創建的 provisioning profile。

四、登錄iTunes Connect查看新建APP


登錄進 iTunes Connect !你的 app 已經創建好了,nice!


只需要一條命令,你就在 iTunes Connect 和 Dev Portal 中創建了一個 app 和一個 provisioning profile。簡直很爽嘛。

PS:你的開發者賬號必須是付費的。或者加入了開發組,并且開通了iTunes Connect管理員權限才可以使用Fastlane。

那么初級使用篇就先介紹到這里了。待我再深入了解下,再更新Fastlane的更多用法。

Fastlane有非常多的功能,今后會盡量多的發掘出來,供大家使用~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容