I noticed that SwiftLint no longer works for me in Xcode 15.4 when I switched to a M1 Mac, so I searched and found this user script that has helped me to resolve this problem.
Install SwiftLint
brew install swiftlint
Add new run script phrase
if [[ "$(uname -m)" == arm64 ]]; then
export PATH="/opt/homebrew/bin:$PATH"
fi
if which swiftlint > /dev/null; then
swiftlint --fix && swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
Disable User Script Sandboxing
Do not forget to disable User Script Sandboxing in Build Settings/Build options, which is enabled by default from XCode 15.
Swiftlint rules
Update the line_length warning and error so it works for you.
disabled_rules:
- trailing_whitespace
opt_in_rules:
- empty_count
- empty_string
excluded:
- Carthage
- Pods
- SwiftLint/Common/3rdPartyLib
line_length:
warning: 300
error: 500
ignores_function_declarations: true
ignores_comments: true
ignores_urls: true
function_body_length:
warning: 300
error: 500
function_parameter_count:
warning: 10
error: 15
type_body_length:
warning: 300
error: 500
file_length:
warning: 1000
error: 1500
ignore_comment_only_lines: true
cyclomatic_complexity:
warning: 15
error: 25
reporter: "xcode"
SwiftLint disable rule
For example, // swiftlint:disable:next identifier_name
Top comments (0)