본문 바로가기

iOS 개발/iOS 개발 정보

프로젝트에 Swiftlint 추가하기

반응형

안녕하세요. skillist입니다~~

 

오늘은 SwiftLint를 추가해볼께요.

관련 글 작성 할 생각은 없었는데요, 프로젝트 진행하면서 swiftlint를 추가할 일이 생겼어요.

그래서 겸사겸사 작성해봅니다.

 

순서대로 가볼게요.

 

1. 프로젝트에서 cocoaPods을 사용하지 않았다면, 터미널 앱을 실행하여, 프로젝트 폴더로 이동 후, "pod init"을 입력합니다.

 

2. 그럼 프로젝트 폴더 안에 "Podfile"이 생성될거에요. 이 파일을 열어주세요.

 

3. 다음과 같이 "pod 'SwiftLint'를 입력하고 저정해주세요

코코아팟 설치 방법은 swiftlint git에 가이드가 있습니다.

https://github.com/realm/SwiftLint

 

GitHub - realm/SwiftLint: A tool to enforce Swift style and conventions.

A tool to enforce Swift style and conventions. Contribute to realm/SwiftLint development by creating an account on GitHub.

github.com

 

참고로, 저는 주로 다음 URL에서 코코아팟 관련 오픈소스를 검색합니다.

https://cocoapods.org/

 

CocoaPods.org

CocoaPods is built with Ruby and is installable with the default Ruby available on macOS. We recommend you use the default ruby. Using the default Ruby install can require you to use sudo when installing gems. Further installation instructions are in the g

cocoapods.org

 

4. 프로젝트에서 코코아팟 사용이 처음이라면 "pod install"을, 사용중인 코코아팟에 SwiftLint를 추가했다면, "pod update"를 터미널에 입력합니다.

 

그럼 다음과 같이 설치 완료가 됩니다.

 

5. cocoapods을 적용했다면, 우리는 이제 "xcworkspace" 확장자를 가진 파일을 실행해야 합니다.

워크스페이스를 실행해주세요

 

6. Xcode를 실행하여 프로젝트 설정으로 이동하여 + 버튼을 터치합니다.

프로젝트 -> Target -> Build Phases

 

7. "New Run Script Phase"를 선택하세요.

 

8. 하단 Run Script에 다음을 추가하고 빌드해보세요.

"${PODS_ROOT}/SwiftLint/swiftlint"

 

9. 저는 많은 에러가 발생했는데요, SnapKit 오픈소스에서 발생한 에러들입니다. 그래서 이를 무력화 해볼거에요.

 

10. 새로운 empty 파일을 생성하고, 이름을 ".swiftlint.yml"로 작성해요. 꼭 ".swiftlint.yml"입니다.

 

11. ".swiftlint.yml" 파일을 열고 다음 text의 8~9라인을 입력합니다. 

disabled_rules:
- line_length
- comment_spacing
- empty_enum_arguments

included:

excluded:
- Pods

1~4라인 : 비활성화 할 규칙들이에요. swiftlit는 은근 까다롭기 때문에, 아무것도 아닌 것들(스페이스 공백 등)에 대해서도 규칙을 잡아냅니다. 그래서 저는 자주 사용하는 비활성화 규칙들을 추가했어요.

6라인 : 꼭 포함되어야 하는 파일들이에요.

8라인 : 꼭제외할 파일들이에요. 저는 Pods에 추가된 오픈소스에 대해서 swiftlint를 적용하지 않기위해서, Pods를 추가하여 제외했어요.

 

관련 규칙들은 다음 URL에 아주 잘 설명돼있습니다.

https://realm.github.io/SwiftLint/rule-directory.html

 

Rule Directory Reference

 

realm.github.io

 

이 정도면 스위프트 적용부터, 규칙 설정까지 모두 말씀드렸습니다.

그럼 다음에 또 봐요~~~

 

코드 작성보다 글 작성에 소요되는 시간이 너무 크네요;;;; ㅠㅜㅜㅠ

 

---------------------------------------------------------------------------------------------------------

 

22년 3월 2일

우아한 형제들의 "기술 블로그"를 보는 와중에,

Swift AutoCorrect 를 알게 되어 내용을 추가합니다.

https://techblog.woowahan.com/2688/

"New Run Script Phase"를 선택하여, 새로운 Run Script를 추가하세요.

 

그리고 "Run Script"이름을 더블클릭하여 변경해줬습니다.

스크립트에는 다음과 같이 추가해주세요.

${PODS_ROOT}/SwiftLint/swiftlint autocorrect

그리고 빌드를 하면 Swift Lint 룰에 맞게 자동으로 수정(AutoCorrect)되죠!!

 

"과거에 Swift Lint 자동 수정을 사용했었는데?" 라는 생각을 계속하고 있었어요.

당시 이해를 제대로 못한 상태라 어느순간 잊고 있었네요.

의아했던 부분이 완전 풀렸어요!

반응형