[Xcode] 프로젝트 SwiftLint 설정하기

반응형

brew로 swiftlist 설치

CocoaPods을 사용해서 설치 할게 아니라면 brew를 실행해서 swiftlint를 설치한다.


brew install swiftlint

 

.swiftlint.yml 파일 생성

Xcode에서 Empty 파일을 생성하고 파일명을 .swiftlint.yml 으로 지정한다. 파일 숨김 처리를 함으로 Xcode에서 경고창이 ㄸ는데 Use "." 로 선택하고 창을 닫는다.

다음은 프로젝트 룰에서 제거할 목록이다.


disabled_rules:
  - colon
  - comma
  - control_statement
  - identifier_name
  - shorthand_operator
  - empty_count
  - line_length
  - type_name
  - force_cast
  - force_try
  - cyclomatic_complexity
  - unused_optional_binding
  - trailing_whitespace         # 공백
opt_in_rules:
  - empty_count
  - missing_docs
included:
excluded:
  - Carthage
  - Pods
  - routine/routineTests
  - routine/routineUITests

 

Run Script 추가


if test -d "/opt/homebrew/bin/"; then
  PATH="/opt/homebrew/bin/:${PATH}"
fi

export PATH

if which swiftlint >/dev/null; then
  swiftlint
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

Based on dependency analysis 해제

프로젝트에 생성된 스크립트의 Run script 옵션의 Based on dependency analysis 를 해제 해준다.

 

스크립트가 모든 빌드에서 실행될 필요가 없는 경우 해당 옵션을 체크하면 Xcode는 스크립트의 종속성을 분석합니다. 즉, 스크립트의 입력이 마지막 실행 이후 변경되었는지 그리고 스크립트의 출력이 존재하는지 확인해 스크립트를 실행시킵니다. 증분빌드시에 변경사항이 없다면 스크립트 실행을 스킵합니다.

 

ENABLE_USER_SCRIPT_SANDBOXING

마지막으로 프로젝트 설정에서 다음 옵션을 NO 로 변경한다.

  1. 프로젝트 설정 이동
  2. 타깃 선택
  3. Build Settings 선택
  4. ENABLE_USER_SCRIPT_SANDBOXING 검색
  5. User Script Sandboxing 을 NO 로 변경

 

관련 URL

반응형

댓글

Designed by JB FACTORY