¿Qué es SwiftLint?
SwiftLint es una herramienta de linter y formateo para proyectos Swift. Analiza tu código buscando desviaciones de las Swift Style Guidelines y muestra avisos o errores para mantener un estilo coherente.
Instalación
brew install swiftlint
Para eso hay que tener instalado homebrew, hay que seguir las instrucciones en https://brew.sh/
Una vez hecho esto necesitamos activar un script de compilación. Añadiremos el siguiente script en la sección de XCode Targets > Build Phases, le daremos al botón “+” y añadiremos un “New Run Script phase”. El script es el que tenemos a continuación:
if [[ -z "$CI" ]]; then
if [[ "$(uname -m)" == arm64 ]]; then
export PATH="/opt/homebrew/bin:$PATH"
fi
# Evita ejecutar en SwiftUI previews
if [ "$XCODE_RUNNING_FOR_PREVIEWS" != "1" ]; then
if which swiftlint > /dev/null; then
CONFIG="${SRCROOT}/.swiftlint.yml"
swiftlint --fix --config "$CONFIG" # auto‑fix con tu YAML
swiftlint --config "$CONFIG" # lint “normal” con tu YAML
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
fi
else
echo "Running in Xcode Cloud. Skipping SwiftLint."
fi
Esto hará que se compruebe el código cuando se compile solamente (no con las previews) además intentará arreglar lo que pueda (como los espacios en blanco sobrantes) con el comando –fix y también asegura que encuentra el archivo de configuración…
Hablando de configuración, en la raíz de nuestra carpeta de aplicación (al mismo nivel que el de la carpeta oculta .git) añadiremos un archivo .swiftlint.yml en este podemos añadir algunas opciones extra para que no sea tan restrictivo… por ejemplo
line_length:
warning: 300
type_body_length:
warning: 500
file_length:
warning: 750
function_body_length:
warning: 750
function_parameter_count:
warning: 10
disabled_rules:
- trailing_whitespace
- large_tuple
- identifier_name
excluded:
- .git
- Pods
- Carthage