ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SwiftLint 사용하기 1
    iOS 2023. 2. 10. 18:15

    우리는 프로젝트를 시작하기 전에 Code Convention에 대한 부분을 정해두고 시작합니다.
    convention에 대해 팀원과 함께 작성을 해둔다고 해도 다양한 이유로 실수로 정해둔 convention조차 지키지 못하게 됩니다.
    또한 매번 프로젝트마다 서로 다른 스타일로 더 많은 실수를 발생시킬 수 있습니다.
    convention에 대한 실수를 방지하고 일관된 스타일의 convention을 지켜나가기 위해 SwiftLint를 적용해봅니다.

    SwiftLint란 ?

    GitHub Swift Style Guide를 기반으로 Swift 스타일과 컨벤션을 강제하기 위한 도구입니다. SwiftLint는 스위프트 커뮤니티에서 일반적으로 사용되는 스타일 가이드 규칙을 적용시켜줍니다. 이러한 규칙은 Ray Wenderlich’s Swift Style Guide를 기반으로 하고 있습니다.
    SwiftLint는 ClangSourceKit에 연결하여 소스 파일의 AST표현을 사용하여 보다 정확한 결과를 얻을 수 있습니다.

    설치방법 : Homebrew

    SwiftLint를 사용하려면 Homebrew, Mint, CocoaPods 등의 방법이 있습니다. 처음에는 pod install하여 사용하는 CocoaPods을 사용했지만 프로젝트마다 pod install을 해서 사용해야한다는 단점이 있어서 Homebrew를 사용하게 되었습니다.

    1. 터미널에 아래 코드를 입력합니다.
    brew install swiftLint 
    

    !!!!! 역시 그냥 쉽게 설치가 될리가 없습니다..🥰
    아래와 같은 에러가 발생했습니다.
    이는 다른 라이브러리가 누락되었거나 Docker 삭제 등등의 문제로 발생한다고 합니다.
    Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins
    해당 에러를 처리하기 위해서 Docker앱의 폴더를 다시 생성합니다.

    mkdir -p /Applications/Docker.app/Contents/Resources/cli-plugins
    

    그리고 다시 실행해봅시다.

    brew cleanup
    
    brew reinstall swiftlint
    

    설치가 성공적으로 됐습니다.
    이제 Xcode 프로젝트로 가서 적용해봅시다.✈️

    1. Xcode에서 Targets 해당 프로젝트 선택
    2. 상단의 Build Phases 선택
    3. + 버튼을 눌러서 New Run Script Phase 선택
    4. Run Script에 아래와 같이 brew path에 위치한 swiftLint를 찾아 갈 수 있도록 코드를 복사 붙여 넣기

    해당 스크립트의 이름을 위의 사진 처럼 변경하고 싶다면 두번 클릭해서 변경 가능합니다!

    export PATH="$PATH:/opt/homebrew/bin"
    if which swiftlint > /dev/null; then
      swiftlint
    else
      echo "warning: SwiftLint not installed, download from <https://github.com/realm/SwiftLint>"
    fi
    


    해당 스크립트 위치를 수정할 수 있어서 compile 단계 전에 실행하려고 이동시켰다가
    아래와 같은 이유로 문서를 참고하여 다시 수정하기 전으로 되돌려 뒀습니다.
    또한 문서를 참고하면 compile source 이전으로 옮기고 싶을 때 추가해야하는 코드를 확인 할 수 있습니다.

    💡 You might want to move your SwiftLint phase directly before the 'Compile Sources' step to detect errors quickly before compiling. However, SwiftLint is designed to run on valid Swift code that cleanly completes the compiler's parsing stage. So running SwiftLint before 'Compile Sources' might yield some incorrect results. If you wish to fix violations as well, your script could run swiftlint --fix && swiftlintinstead of just swiftlint. This will mean that all correctable violations are fixed while ensuring warnings show up in your project for remaining violations.

    1. .swiftlint.yml 파일 생성 및 규칙 적용하기
    2. 적용하고 싶은 프로젝트 파일 내에 .swiftlint.yml 이름으로 empty파일을 생성해줘야합니다. 아래에 User Interface, Documentation, Other 중 아무거나 선택해서 만들어도 상관없지만, 파일이름은 무조건 .swiftlint.yml로 생성해줘야 합니다.

    해당 파일 생성 이후에 아래와 같은 알림창이 뜨고 ‘Use’, Use.yml’을 선택하여 생성하면 swiftlint가 사용 가능한 상태가 됩니다.




    swiftlint를 활용하는 방법은 2탄에서 뵙겠습니다🤍


    🏷️참고자료

    'iOS' 카테고리의 다른 글

    SwiftLint 사용하기 2  (0) 2023.02.14

    댓글

Designed by Tistory.