一、FastLane介紹
FastLane是一種配置iOS和Android自動化Beta部署和發布的最簡單的方法之一。它可以簡化一些乏味、單調、重復的工作,像截圖、代碼簽名以及發布App。
你可以從項目工程中創建FastLane文件開始,在FastLane文件里定義了Beta部署或App Store發布過程,如下:
省時:每次將新版本推送到商店或Beta測試服務時,都可節省時間。
自定義:根據自身需要擴展和定制fastlane,不依賴任何人。
實際上fastlane是一套工具集,包含如下工具:
1)?測試工具
scan:自動運行測試工具,可以生成漂亮的HTML報告
2)?生成證書、配置文件工具
cert:自動創建iOS代碼簽名證書(.cert文件)
sigh:自動創建、更新、下載、修復Provisioning Profile
pem:自動生成、更新推送配置文件
3)?截圖、描設備邊框
deliver:上傳截圖、元數據、App到iTunesConnect
snapshot:使用UI test功能實現自動截圖
frameit:在截圖的圖片外層套上物理設備邊框
4)?自動化編譯工具
gym:自動化編譯工具
5)?App公測工具
pilot:管理TestFlight測試用戶,上傳二進制文件
firim:管理firim
1.5 FastLane基礎環境
1)?Fastlane其實是一個Ruby腳本的集合,首先查看是否安裝Ruby
ruby -v
2)?檢測:確保已安裝最新Xcode命令行工具
xcode-select? --install
3)?安裝:安裝fastlane命令行
brew cask install fastlane
4)?初始化:進入工程目錄,初始化fastlane
fastlane init
在此過程中,fastlane將會自動檢查你的工程項目,然后提示輸入為輸入信息及驗證已輸入信息是否正確。
├── Appfile
├── Deliverfile
├── Fastfile
├── Pluginfile
├── README.md
├── Snapfile
├── SnapshotHelper.swift
├── metadata
│?? ├── copyright.txt
│?? ├── itunes_rating_config.json
│?? ├── primary_category.txt
│?? ├── primary_first_sub_category.txt
│?? ├── primary_second_sub_category.txt
│?? ├── review_information
│?? ├── secondary_category.txt
│?? ├── secondary_first_sub_category.txt
│?? ├── secondary_second_sub_category.txt
├── report.xml
├── screenshots
└──README.txt
1)?Fastfile:自動化執行配置文件
2)?Appfile:存儲App公共信息
3)?Deliverfile:存儲App發布信息
1)?查看支持的所有插件:fastlane search_plugins
2)?安裝插件:fastlane add_plugin [name]
3)?常用插件安裝:
fastlane add_plugin versioning(設置App插件號車間)
fastlane add_plugin firim(設置測試版發布平臺firim)
1)?、App Store屏幕截圖可能是說服潛在用戶下載或購買應用的最重要事情之一。然而,許多app的屏幕截圖做得并不好,因為準備圖片和展示圖片會花費很多時間 。我們主要會基于以下考慮:
App Store展示的截圖是否和最新的app設計一致?
App截圖的本地化語言顯示是否一致?
App截圖不完整是否導致圖片顯示的差異?
屏幕截圖在各種設備上顯示內容是否存在差異?
對于這些問題,fastlane都可以進行快速的自動化處理,并產生我們所期望的結果。而手動截圖最大的缺點是我們需要在每次發布app之前不斷的重復相同的流程,或許因為一個拼寫錯誤、一個本地語言的增加或刪除、一個頁面更新等,我們都得從頭再來,真是太可怕了。
2)?、Fastlane在snapshot自動抓取app截圖的過程中,我們可以:
抓取不同設備、不同語言的截圖。
在抓取截圖的過程中,我們可以省下很多時間做其他事情。
一次完整的配置,可以和其他協同開發成員共享。
生成的所有截圖可以通過網頁展示出來。
3)?、抓取截圖完成后,漂亮的HTML頁面顯示如下所示:
snapshot使用UI Tests功能來抓取App上的圖片。在開始使用UITests時,可以使用UI Test錄制,只需按下Xcode底部的紅色按鈕。這是,xcode將會記錄下你的操作代碼。實際操作步驟如下:
1)?在xcode工程中創建一個新的UI測試目標。
2)?在工程目錄下運行:fastlane snapshot init。
3)?將生成的./SnapshotHelper.swift文件添加到UI測試文件目錄下。
4)?添加橋接頭文件到我們的測試類中(只適用于OC代碼)。
5)?在UI測試類中,按下錄制按鈕開始錄制我們的交互操作。
6)?在UI測試類需要截圖的地方添加代碼:
Swift:snapshot(“01LoginScreen”);
OC:[Snapshotsnapshot:@”01LoginScreen” waitForLoadingIndicatore:YES];
7)?在setup()函數中添加如下代碼:
swift:letapp = XCUIApplication()
setupSnapshot(app)
app.lanuch()
oc:XCUIAppication*app = [[XCUIApplication alloc] init];
[Snapshot setupSnapshot:app];
[app launch];
8)?在運行setup()函數過程中,將生成一個名為Snapfile的文件,這個文件在運行fastlane snapshot命令的時候將會被加載,內容如下所示:
# A list of devices you want totake the screenshots from
# devices([
#??"iPhone 6",
#??"iPhone 6 Plus",
#??"iPhone 5",
#??"iPhone 4s",
#??"iPad Retina",
#??"iPad Pro"
# ])
languages([
"en-US",
"de-DE"
])
… …
注:如果沒有生成Snapfile文件,使用命令行$ fastlane snapshot init生成。
9)如果已經安裝fastlane,我們可以很容易的通過snapshot截圖。
fastlane snapshot
使用fastlanesnapshot生成截圖后,我們就開始上傳圖片到iTunes Connect。安裝fastlane并且在工程根目錄下運行snapshot init命令,我們會在工程根目錄下看到fastlane/screenshots和fastlane/metadata目錄。我們截取的圖片就保存在fastlane/screenshots中。
上傳截圖很簡單,只需要運行:
fastlane deliver
如果我們將上面的分步操作組合在一起執行,那么在開發團隊中的任何人都可以上傳新的截圖,而通過對Fastfile文件的配置幫助我們實現了這一點,配置如下:
lane :screenshots do
snapshot
deliver
end
frameit將幫助我們為App截圖構建漂亮的設備邊框,只需要運行命令:
fastlane frameit
在此不在詳述具體過程,效果如下(相當漂亮):
fastlane通過gym來構建app,需要在fastfile中添加:
lane :beta do
gym(scheme: “MyApp”)
end
然后運行:fastlanebeta,我們在當前目錄下將會看到[ProductName].ipa文件。
在編譯打包完成后,我們就可以上傳測試版本到測試服務器上了,這時修改3.1中的配置為:
lane :beta do
match(type: “appstore”)
gym(scheme:”MyApp”)
testflight
slack(message: “成功上傳測試版到testflight”)
end
打開Fastfile文件,添加如下內容:
lane :upload_firim do
sigh(adhoc: true)#申請adhoc證書
increment_build_number_in_plist(target: [target_name])
increment_version_number_in_plist(
target: [target_name],
version_number: '7.1.3'
)
gym(#gym用于編譯ipa
output_directory: './firim',
export_options: {
method: "ad-hoc", #默認,可以不指定
thinning: ""
}
)
firim(firim_api_token: [firim_api_token])#上傳ipa到fir.im服務器
end
輸入命令:fastlaneupload_firim一鍵上傳。
fastlane通過gym來構建app,需要在fastfile中添加:
lane :appstore do
gym(scheme: “MyApp”)
end
然后運行:fastlaneappstore,我們在當前目錄下將會看到[ProductName].ipa文件。
在編譯打包完成后,我們就可以上傳測試版本到測試服務器上了,這時修改4.1中的配置為:
lane :appstore do
sigh
increment_build_number_in_plist(target: [target_name])
increment_version_number_in_plist(
target: [target_name],
version_number: '7.1.3'
)
gym(# 指定輸出目錄
output_directory: './build',
)
deliver(force: true) # 上傳所有信息到App Store
end
輸入命令:fastlaneappstore一鍵上傳。
轉載來自:http://blog.csdn.net/cdut100/article/details/76381605