Search
Duplicate

(Swift) SwiftLint 적용하기

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Swift
Scrap
태그
Lint
9 more properties

SwiftLint 적용하기

SwiftLint적용하는 방법은 아래 Github에 가면 자세히 설명이 되어 있다.
그 중에서 brew로 적용하는 방법에 대해서 알아보자!
SwiftLint
realm

1. SwiftLint 설치

brew install swiftlint
Shell
복사

2. SwiftLint, Xcode Scheme에 통합

아래 경로에서 run script phase를 새로 만들어준다.
Target > build phase > + > new run script phase

3. 스크립트 추가

아래 코드를 실행시킬 스크립트에 추가한다.
if which swiftlint >/dev/null; then swiftlint else echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint" fi
Shell
복사

4. .swiftlint.yml 파일 추가

프로젝트 상위에 .swiftlint.yml 파일을 추가한다.

5. 원하는 옵션 적용하기

.swiftlint.yml 파일에 따로 옵션을 작성하지 않으면, swiftlint 에서 작성한 Default Lint가 적용된다! 해당 값은 SwiftLint Github에 들어가면 자세히 알 수 있다.
하지만, 그냥 빌드하면 너무 많은 에러가 뜨기 때문에 원하는 옵션만 적용해보도록 하자! 보통 적당한 린트 예시파일을 가져와서 만드는 편이다.
아래 SwiftLint 에서 만들어둔 작성 가이드를 토대로 만들어보자!
disabled_rules: # 실행에서 제외할 룰 식별자들 - colon - comma - control_statement opt_in_rules: # 일부 룰은 옵트 인 형태로 제공 - empty_count - missing_docs # 사용 가능한 모든 룰은 swiftlint rules 명령으로 확인 가능 included: # 린트 과정에 포함할 파일 경로. 이 항목이 존재하면 `--path`는 무시됨 - Source excluded: # 린트 과정에서 무시할 파일 경로. `included`보다 우선순위 높음 - Carthage - Pods - Source/ExcludedFolder - Source/ExcludedFile.swift # 설정 가능한 룰은 이 설정 파일에서 커스터마이징 가능 # 경고나 에러 중 하나를 발생시키는 룰은 위반 수준을 설정 가능 force_cast: warning # 암시적으로 지정 force_try: severity: warning # 명시적으로 지정 # 경고 및 에러 둘 다 존재하는 룰의 경우 값을 하나만 지정하면 암시적으로 경고 수준에 설정됨 line_length: 110 # 값을 나열해서 암시적으로 양쪽 다 지정할 수 있음 type_body_length: - 300 # 경고 - 400 # 에러 # 둘 다 명시적으로 지정할 수도 있음 file_length: warning: 500 error: 1200 # 네이밍 룰은 경고/에러에 min_length와 max_length를 각각 설정 가능 # 제외할 이름을 설정할 수 있음 type_name: min_length: 4 # 경고에만 적용됨 max_length: # 경고와 에러 둘 다 적용 warning: 40 error: 50 excluded: iPhone # 제외할 문자열 값 사용 identifier_name: min_length: # min_length에서 error: 4 # 에러만 적용 excluded: # 제외할 문자열 목록 사용 - id - URL - GlobalAPIKey reporter: "xcode" # 보고 유형 (xcode, json, csv, codeclimate, checkstyle, junit, html, emoji, sonarqube, markdown, github-actions-logging)
YAML
복사

Reference