๐ŸŽ iOS/UIkit

SwiftLint ์„ค์น˜ํ•˜๊ณ  ์ ์šฉํ•˜๊ธฐ

JerryiOS 2023. 4. 24. 22:30

SwiftLint

Xcode์—์„œ  ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜ ๊ด€๋ จ ๊ทœ์น™์„ ์ •ํ•˜๊ณ  ๊ทœ์น™์— ์–ด๊ธ‹๋‚˜๋Š” ๊ฒƒ์ด ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์›Œ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

์„ค์น˜๋ฐฉ๋ฒ•

1. SwiftLint ์„ค์น˜

brew๋กœ ์„ค์น˜ํ•ด๋ณด๊ฒ ๋‹ค.

ํ•ด๋‹น ํด๋”๋กœ ๊ฐ€์„œ

brew install swiftlint

์ž…๋ ฅํ•œ๋‹ค.

 

2. Run Script ์„ค์ •

Targets > ํ”„๋กœ์ ํŠธ ํด๋” > ์ƒ๋‹จ์˜ Build Phases > + ๋ฒ„ํŠผ > New Run Script Phase > Run Script์— ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณต๋ถ™ํ•œ๋‹ค.

brew path์— ์œ„์น˜ํ•œ SwiftLint๋ฅผ ์ฐพ์•„๊ฐ€๋„๋ก ํ•˜๋Š” 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

 

3. .swiftlint.yml ํŒŒ์ผ ์ƒ์„ฑ

emptyํŒŒ์ผ์„ ํ”„๋กœ์ ํŠธ ์ตœ์ƒ๋‹จ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑํ•œ๋‹ค.

๊ทœ์น™์€ ํŒ€๊ณผ ํ˜‘์˜ํ•˜์—ฌ ์ปจ๋ฒค์…˜์„ ์ •ํ•˜๋„๋ก ํ•œ๋‹ค.

์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

disabled_rules:  // ์•„๋ž˜ ๋ฃฐ์€ ๊ฒ€์‚ฌ ๋Œ€์ƒ์—์„œ ์ œ์™ธํ•˜๊ฒ ๋‹ค๋Š” ๋œป
- trailing_whitespace
- xctfail_message
- function_parameter_count
- legacy_constructor
- force_cast
- trailing_comma
- force_try
- identifier_name

type_body_length: 250  // ํƒ€์ž…/ํ•จ์ˆ˜/ํŒŒ์ผ ๋“ฑ์˜ ์ฝ”๋“œ๊ธธ์ด ์ œํ•œ์„ ๋ณ€๊ฒฝํ•˜๊ฒ ๋‹ค๋Š” ๋œป
line_length: 120
function_body_length: 50
file_length: 500

 

๊ทธ๋ ‡๊ฒŒ ๋ชจ๋“  ์„ค์ •์„ ์™„๋ฃŒํ•˜๊ณ  Run๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด 

๊ทœ์น™์— ์–ด๊ธ‹๋‚œ ์ฝ”๋“œ๋“ค์ด ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šด๋‹ค.

 

 

๋ฐ˜์‘ํ˜•