Fastlane을 설치하기 전에는 먼저 Xcode command line 툴을 설치
- SnapshotFILE fastlane
desc "Create Screnshots"
lane :screenshot do
snapshot
end
초기화 명령어: fastlane snapshot init
- snapfile이라는 설정 파일과, 스냅샷을 찍기 위한 2.3 버전, 3.x 버전의 swift 파일이 두 개 생성
- Snapfile, SnapshotHelper.swift
- Snapshot의 설정 파일에 기기, 언어 등 최소한의 설정 가능
- 파일이동 samplebuildUITests.swift –> File-New-Target-ios Test Bundle (ex: samplebuildUITests)
FastLane 사용형태
Fastlane 파일
default_platform(:ios) platform :ios do # ios 플랫폼 desc "Description of what the lane does" # 설명 lane :custom_lane do # fastlane custom_lane 명령어로 실행 # add actions end end
Lanes
before_all do |lane, options| # ... end before_each do |lane, options| # ... end lane :deploy do |options| # ... if options[:submit] # Only when submit is true end # ... increment_build_number(build_number: options[:build_number]) # ... end after_all do |lane, options| # ... end after_each do |lane, options| # ... end error do |lane, exception, options| if options[:debug] puts "Hi :) Error" end end
Switching lanes
lane :deploy do |options| # ... build(release: true) # that's the important bit hockey # ... end lane :staging do |options| # ... build # it also works when you don't pass parameters hockey # ... end lane :build do |options| scheme = (options[:release] ? "Release" : "Staging") build_ios_app(scheme: scheme) end
Private Lane
lane :first_lane do |options| puts "If you run: `fastlane first_lane`" puts "You'll see this!" second_lane puts "As well as this!" end private_lane :second_lane do |options| next puts "This won't be shown" end
Screenshot
test build 과정에서 screenshot을 촬영해 특정 directory에 추출 가능
개발 iOS에 맞는 Device와 Language를 설정하여 사용한다.
fastlane snapshot init 초기화 명령어실행
Snapfile이 생성되며 Device, languages, outdirectory, 기존Screenshot 삭제 등 추가
./SnapshotHelper.swift 파일을 UI Test 위치에 추가
UI FastlaneSampleUITests 파일내에 SetupSnapshot(app) 추가
Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app]; [app launch];