0

将 SwiftLint 0.16.1 更新到 SwiftLint 0.18.1 时,我得到:

/Users/coeur/Library/Developer/Xcode/DerivedData/MyApp-7-eloayqptodupvfhbyegtkncnhcpu/Build/Intermediates/MyApp-7.build/UAT-iphonesimulator/MyApp-7-Debug.build/Script-379156A71D62F5C100574D04.sh:第2行: 30296 非法指令:4 "${PODS_ROOT}/SwiftLint/swiftlint" 命令 /bin/sh 失败,退出代码为 132

DerivedData 是干净的。
使用 Xcode 8.3.1、CocoaPods 1.2.1、Swift 3.1。

我的.swiftlint.yml

# Find all the available rules by running:
# swiftlint rules

excluded:
- Carthage
- Pods

disabled_rules:
  - todo
  - line_length

opt_in_rules:
  - empty_count

trailing_whitespace:
 ignores_empty_lines: true
 ignores_comments: true
large_tuple: warning: 3
type_name: max_length: warning: 42
variable_name: min_length: warning: 1
4

1 回答 1

0

SwiftLint 0.18.x 引入了一项重大更改。他们将YamlSwift替换为Yams。Yams 对 YAML 的解释比 YamlSwift 更严格,因此如果您的.swiftlint.yml配置以前使用 SwiftLint 但不完全符合YAML 1.2 标准,则需要修复这些验证错误。

在您(我的)的情况下,每个映射条目(用冒号表示:)都需要在自己的行上:

large_tuple:
 warning: 3
type_name:
 max_length:
  warning: 42
variable_name:
 min_length:
  warning: 1

请注意,为了避免 SwiftLint 将来因这个问题而崩溃,提出了拉取请求:https ://github.com/jpsim/Yams/pull/37

于 2017-04-14T05:27:00.477 回答