Fastlane ios 설명 자동배포

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];

덧글 삭제

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다