标签: swiftlint

更好地解释SwiftLint参与规则match_kinds设置

是否有人对SwiftLint的“选择加入”规则对match_kinds类型有更好的解释。该文档提供了枚举的类型,但除了名称外没有其他说明。

match_kinds类型包括:

参数,attribute.builtin,attribute.id,buildconfig.id,buildconfig.keyword,注释,comment.mark,comment.url,doccomment,doccomment.field,标识符,关键字,numberobjectliteral,参数,占位符,字符串,string_interpolation_anchor,typeidentifier

例如,我希望在特定命名函数之前具有搜索特定关键字的范围。

swift swiftlint

7
推荐指数
0
解决办法
178
查看次数

如何使用 CocoaPods 排除 SwiftLint 的文件/文件夹?

问题

在构建我的 xcode Swift 项目时,我从 .swiftlint.yml 文件中排除的文件/文件夹的 SwiftLint(即空计数违规)收到违规,但在该excluded部分中指定这些文件/文件夹时,违规仍然发生。

代码

.swiftlint.yml

included:

excluded:
  - Pods
  - myproject/API/api_implementation.swift
  - myproject/API
Run Code Online (Sandbox Code Playgroud)

构建阶段运行脚本

"${PODS_ROOT}/SwiftLint/swiftlint"
Run Code Online (Sandbox Code Playgroud)

项目结构

/projectroot
    .swiftlint.yml
    Pods/
    myproject/
        API/
            api_implementation.swift
Run Code Online (Sandbox Code Playgroud)

lint既不myproject/API/api_implementation.swift也不myproject/API/排除整个目录!

问题

从 lint 中排除此文件和文件夹有什么不正确之处?如果我的语法不正确,正确的语法是什么?如果我的路径不正确,那么 SwiftLint 文件从哪里运行?有趣的是,即使 .swiftlint.yml 文件在我项目的根目录中,运行的 swiftlint 文件也在 Pods/SwiftLint/

也许 Cocoapods 需要额外集成才能让 SwiftLint 工作的方式会导致这个问题。但是,我已尝试清空构建阶段运行脚本,并确认 .swiftlint.yml 文件确实在构建中运行。

任何帮助或想法将不胜感激!

xcode cocoapods swiftlint

7
推荐指数
1
解决办法
4553
查看次数

7
推荐指数
1
解决办法
2220
查看次数

如何使用swiftlint lint单个文件?

我想使用swiftlint来lint一个文件.我该如何做到这一点?检查https://github.com/realm/SwiftLint上的文档没有帮助.

swiftlint

6
推荐指数
3
解决办法
1627
查看次数

为我们的Swift软件包运行SwiftLint的简单方法

到目前为止,我发现的是这篇博客文章:是时候使用Swift Package Manager了,建议将SwiftLint和其他工具与集成Package.swift

我能够将依赖关系添加到包文件中,并成功构建和测试,但是SwiftLint从未警告我有关语法违规的信息。

在Xcode项目中使用此“构建阶段”步骤之前,请执行以下操作:

if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
Run Code Online (Sandbox Code Playgroud)

文章建议采用蒙犬本身毫无用处没有PackageConfigs。这个想法是在提交期间运行SwiftLint命令。我试图添加两个项目,但无法在合理的时间内使它正常工作。在提交期间,我看到如下警告:

非法指示:4 $ komondor运行前提交

对于Swift Package Manager来说,这还处于初期,互联网上几乎没有信息。

理想情况下,我希望有任何可以使我们的团队自动化SwiftLint的解决方案,理想情况下,不需要添加22个依赖项,配置文件和动态库。

swift swift-package-manager swiftlint

6
推荐指数
3
解决办法
194
查看次数

如何从 xcode 卸载 swiftlint,或关闭其警告

请帮助我了解如何卸载 swiftlint,或如何完全关闭它的警告(因为它不时开始忽略所有规则)。我从 pkg 文件安装了 swiftilnt,现在找不到删除它的方法。“从 Makefile 运行”解决方案对我没有帮助,因为我不明白它在哪里,以及如何运行它。在 Xcode 首选项中,我也找不到卸载它的方法。我也在 finder 中搜索“swiftlint”,但它也找不到。

Xcode 8.2.1

xcode ios swiftlint

5
推荐指数
2
解决办法
5955
查看次数

为测试目标/单元测试文件禁用一些 SwiftLint 规则

我希望为我的应用程序中的单元测试禁用几个 SwiftLint 规则。

例如,我想禁用weak_delegate单元测试的规则。

查看了 SwiftLint 文档后,我认为可以通过定义自定义的 weak_delegate 规则并排除单元测试的路径来实现。

https://github.com/realm/SwiftLint#defining-custom-rules

unit-testing xctest swift swiftlint

5
推荐指数
3
解决办法
5135
查看次数

使用 Xcode 设置 SwiftLint

我在 Xcode 上使用一个设置,它运行以下脚本 SwiftLint

if which $PATH/swiftlint >/dev/null; then
$PATH/swiftlint
elif which $HOME/.brew/bin/swiftlint >/dev/null; then
$HOME/.brew/bin/swiftlint
elif which ~/Softwares/homebrew/bin/swiftlint >/dev/null; then
~/Softwares/homebrew/bin/swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
Run Code Online (Sandbox Code Playgroud)

我无法使用 pods或酿造。

为了使其SwiftLint可用,我使用 vim 将以下内容添加到我的路径中~/.bash_profile

export PATH
export PATH=$PATH:/Users/me/Documents/SwiftLint
Run Code Online (Sandbox Code Playgroud)

我现在可以SwiftLint通过命令行访问任何地方。

但是,Xcode 仍然显示未安装 SwiftLint 的消息。

我无法使用其他方法来安装 Swiftlint 或更改脚本。我想我的导出路径有问题 - 这是什么?

swift swiftlint

5
推荐指数
1
解决办法
1000
查看次数

命令 PhaseScriptExecution 失败,退出代码非零 Xcode 11.3.1

Command PhaseScriptExecution failed with a nonzero exit code经常遇到错误,我遵循了以下解决方法,但对我没有帮助。

解决方法1:钥匙串访问 -> 右键单击​​登录 -> 再次锁定和解锁 -> 清理 Xcode 项目 -> 再次构建

解决方法2:构建阶段 -> 目标 -> 嵌入式 Pod 框架 “仅在安装时运行脚本”

解决方法3:删除派生数据

解决方法2:清理项目并再次构建。

找到下面的日志

Library/Developer/Xcode/DerivedData/CompanyName-
bofekdusvsoagmhinknpcoyjfyoj/Build/Intermediates.noindex/CompanyName.build/Debug-
iphonesimulator/company-iOS.build/Script-2AD2DCB21F0D6514005CEF4D.sh: line 2: 20846 
Segmentationfault: 11  ../BuildSupport/swift_lint_check.sh
Run Code Online (Sandbox Code Playgroud)

xcode ios swift swiftlint xcode11.3

5
推荐指数
1
解决办法
2万
查看次数

SwiftLint 在 Swift 中覆盖 getter 时收到“implicit_getter”警告

extension CGRect {
    var x: CGFloat {
        set { self.origin.x = newValue }
        get { return self.origin.x } > got warning this line
    }
}

Run Code Online (Sandbox Code Playgroud)

警告:

隐式 Getter Violation:计算的只读属性应避免使用 get 关键字。(隐式获取器)

Swiftlint Docs 没有示例

https://realm.github.io/SwiftLint/implicit_getter.html

我该如何解决这个警告?除了忽略

swift swiftlint

5
推荐指数
1
解决办法
2919
查看次数