SwiftLitt 가져오기

3197 단어 SwiftSwiftLintiOS
지난 6월께부터 iOS 애플리케이션@hofzzy 개발이 시작됐다.
업무에서 도입SwiftLint했기 때문에 그 지식을 공유합니다.

Installation


멀티 개발에서 스위프트라이트 버전을 갖추려고 코코아팟으로 설치했다.
Homebrew에도 설치할 수 있지만 필자는 그 방법을 시도해 본 적이 없기 때문에 이번에는 설명을 생략할 수 있도록 허락해 주십시오.
Podfile에 SwiftLitt 추가
Podfile
platform :ios, '10.0'

target 'sample1' do
  use_frameworks!

  pod 'SwiftLint', '0.23.0'
end
Podfile에 Swift Line을 추가한 후 터미널에서 실행pod install합니다.설치가 완료되었습니다.

Xcode


Xcode를 사용하여 빌드하면 Lin이 자동으로 실행됩니다.
Xcode에서 프로젝트 파일을 선택하여 Build Phase의 Run Script에 다음 스크립트를 붙여넣습니다.
if which "${PODS_ROOT}/SwiftLint/swiftlint" >/dev/null; then
    ${PODS_ROOT}/SwiftLint/swiftlint
else
    echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

이렇게 하면 구축 시 라인이 적용되고 경고나 오류가 있으면 Xcode의 Issue Navigator에 표시됩니다.

Configuration


기본 규칙에서 사용하기 불편한 점이 많아 Lin 설정을 사용자 정의했습니다.
SwiftLitt를 가져온 프로젝트 루트 바로 아래에 생성.swiftlint.yml됩니다.필자는 다음과 같은 내용으로 제작하였다.
.swiftlint.yml
included:
  - MyApp/
excluded:
  - Pods/
opt_in_rules:
  - closure_spacing
  - conditional_returns_on_newline
  - empty_count
  - operator_usage_whitespace
disabled_rules:
  - force_cast
  - force_try
line_length: 300
identifier_name:
  min_length:
    warning: 1
included
Litt 객체의 디렉토리(파일) 경로에 대해 설명합니다.
excluded
Litt 객체에서 제외된 디렉토리(파일)의 경로를 설명합니다.CocoPods에 설치된 라이브러리는 Light 객체에서 제외합니다.
opt_in_rules
기본 배제 규칙을 추가하려면 여기에 설명하십시오.
규칙 일람표는 SwiftLitt의 GiitHub에 기재되어 있습니다.( https://github.com/realm/SwiftLint/blob/master/Rules.md )
disabled_rules
기본 규칙에서 비활성화하려면 여기에 설명하십시오.
가능한 한 여기에 무엇을 쓰지 않는 것이 좋겠지만, 필자는 상황에 따라forcecast와forcetry를 사용하기 때문에 이 두 규칙을 경고하는 것은 무효입니다.
기존 규칙의 경고 수준 조정
경고 레벨을 조정하려는 규칙 이름 다음에 값을 지정하여 설정할 수 있습니다.
  • line_length
  • line length를 통해 경고 레벨을 조정합니다.
    필자는 맥북 프로 13-ich 모니터에서 자주 작업하다 보니 처음 가져올 때는 140 정도 썼지만, UIKit 어셈블리에 장착한 delegate 방법 등이 쉽게 넘어갈 수 있어 지금은 300 정도 쓰고 있다.
  • identifier_name
  • 변수 문자 수에 대한 경고 수준을 조정합니다.
    기본값은 min_length: warning: 2이고 문자가 2글자인 변수는 경고를 보냅니다.

    Auto correct


    SwiftLine은 autocollect 옵션을 추가해서 실행하면 경미한 오류를 자동으로 수정할 수 있습니다.
    Auto correct를 실행하는 경우 Run Script 스크립트는 다음과 같습니다.
    if which "${PODS_ROOT}/SwiftLint/swiftlint" >/dev/null; then
        ${PODS_ROOT}/SwiftLint/swiftlint autocorrect
        ${PODS_ROOT}/SwiftLint/swiftlint
    else
        echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
    fi
    
    autocoorrect 옵션을 설정하면 표준 Line이 실행되지 않음swiftlint autocorrectswiftlint 둘 다 실행해야 합니다.

    좋은 웹페이지 즐겨찾기