首页 > 编程语言 >SwiftLint - iOS 应用程序代码检查

SwiftLint - iOS 应用程序代码检查

时间:2022-09-30 09:48:09浏览次数:83  
标签:错误 iOS 代码 SwiftLint 禁用 swiftlint 规则 程序代码

SwiftLint - iOS 应用程序代码检查

用风格编写干净的代码

SwiftLint 是一个快速的代码风格分析工具,有助于标记风格错误 **** 在代码中。 SwiftLint 强制执行 Swift 社区普遍接受的样式指南规则。开发人员可以设置他们的编码风格规则并在开发过程中强制它们。如果代码违反 linting 规则,它将显示警告和/或错误。

SwiftLint 鼓励实现以下目标:

  1. 增加意图的清晰度。
  2. 保持更高水平的代码纪律。
  3. 提高代码的可靠性。
  4. 生成质量代码。
  5. 提高严谨性,并降低程序员出错的可能性。

开发人员/项目团队使用 SwiftLint 的原因

  1. 一致性:- Swiftlint 提供 C 模式、缩进、间距、样式和命名的一致性。当代码具有这些东西时,它更容易使用并且可以更有信心地更快地开发。不一致的代码会阻止您的同行创建支持和扩展代码库所需的适当结构。
  2. 可读性:- 可读性是以一种能够被包括新成员在内的团队成员轻松阅读和理解的方式编写和呈现代码。 SwiftLint 检查模式、缩进、间距、样式和命名是否有任何规则紫罗兰色它会产生错误/警告,您可以专注于核心功能。
  3. 质量代码:- 在团队中工作时它很有用,因为当代码不符合标准时会产生警告和错误。 SwiftLint 分析器评估代码库的质量,并在代码违反 linting 规则时发出警告和错误。

安装 SwiftLint

安装 SwiftLint 的方法有很多。少数如下。

使用自制软件:

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 冲泡安装 swiftlint

使用 可可豆荚

只需将以下行添加到您的 Podfile 中。

 豆荚'SwiftLint'

这将下载 SwiftLint 二进制文件和依赖项 豆荚/ 在你的下一个 吊舱安装 从终端执行。这是在 Xcode 中安装特定版本的 SwiftLint 的推荐方法,因为它支持安装固定版本而不是简单的最新版本(Homebrew 就是这种情况)

你可以找到更多的安装方法 这里 .

Xcode 中的用法

要在 SwiftLint 集成到 Xcode 项目后在问题导航器中显示警告和错误,我们需要在运行脚本阶段添加一个 shell 脚本,步骤如下。

  • 在浏览器中选择项目。

  • 选择目标。

  • 选择构建阶段选项卡。

  • 点击更多 (+)。

  • 选择 新的运行脚本阶段 并粘贴以下脚本。

  • 运行并构建应用程序。

    出口 PATH="$PATH:/opt/homebrew/bin"
    如果 其中 swiftlint > /dev/null; 然后
    快速林特
    别的
    回声 “警告:未安装 SwiftLint,请从 https://github.com/realm/SwiftLint 下载”

将脚本添加到构建阶段后,会在每次构建应用程序时检查 SwiftLint 规则。

Xcode 中的错误类型

SwiftLint 使用两种类型的 Xcode 错误。

  • 警告 ,这不会阻止应用程序的启动。
  • 红色错误 , 阻止应用程序启动并向您显示构建失败消息。

如果您转到问题导航器,您会发现底部有多个选项。您会发现所有 SwiftLint 错误都在构建时(编译)错误上。

禁用和 C 配置r 代码中的规则

SwiftLint 可以通过添加一个 .swiftlint.yml 到您的回购的根目录。该文件位于项目的主路径中。我们可以在这个 YML 文件中启用、禁用或编写自定义规则。如果项目中还没有 .swiftlint.yml 配置文件,则需要将其添加到项目中。

**1) 更改规则设置
** 例如,如果一行太长且超过 120 个字符,我们将发出“警告”。但如果它超过 200 个字符,则会被视为不必要的长,我们会收到“红色错误”。

 #类型名称  
 **类型名称:**  
 最小长度:2  
 最长长度:  
 警告:50  
 错误:100  
 allowed_symbols:“_”  
      
 #标识符名称  
 **标识符名称:**  
 最小长度:2  
 最长长度:  
 警告:120  
 错误:200  
 allowed_symbols:“_”

**2)在项目中禁用规则
** SwiftLint 提供了一组默认规则,您还可以禁用任何特定规则。你可以找到更多规则 这里 .

**disabled_rules: # 排除运行的规则标识符**  
 - trailing_whitespace  
 - statement_position  
 - 未使用的可选绑定  
 - trailing_whitespace

**3)在linting期间排除代码
** 如果您想排除特定代码,例如 第三方库/pod 您也可以在 .swiftlint.yml 文件中执行此操作。

**排除:# 在 linting 期间要忽略的路径。优先于 `included`。  
** - 豆荚  
 - SwiftLint/Common/3rdPartyLib

**4)禁用特定文件或行中的规则
** 要禁用任何规则,您可以使用以下注释。在此评论之后,该规则将针对整个文件禁用。
// swiftlint: 禁用 rule_identifier

如果您只想在下一行代码中使用以下注释禁用规则:
// swiftlint:disable:next rule_identifier

您还可以禁用当前行和上一行中的规则 swiftlint:禁用:这个 swiftlint:disable:previous 分别。

下面是一个基于 SwitLint 官方文档的 .swiftlint.yml 配置文件示例。

.swiftlint.yml

自动更正和自动修复 SwiftLint 错误

如果您还希望修复违规行为,则需要添加 swiftlint --修复 && swiftlint 在脚本中,而不仅仅是 快速林特 并运行/构建应用程序。这将意味着所有可纠正的违规都得到修复,同时确保在您的项目中显示剩余违规的警告。

确保在运行之前备份这些文件 swiftlint——修复 ,否则可能会丢失重要的数据、文件、代码。

结论

SwiftLint 是开源的,它强制开发人员拥有代码样式和准则。在 swift 项目中设置和免费使用更简单。对于那些想要编写更好且易于维护的代码的人来说,它是一个很好的工具。它还可以帮助新团队成员学习和适应编码标准。

感谢阅读,可以关注我 中等的 对于更新的文章。

如果您有任何意见、问题或建议,请随时在下面的评论部分发表! 请 分享 并给 拍手 如果你喜欢 这个帖子。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/39908/33383009

标签:错误,iOS,代码,SwiftLint,禁用,swiftlint,规则,程序代码
From: https://www.cnblogs.com/amboke/p/16743819.html

相关文章

  • axios请求配置
    importaxiosfrom'axios'importqsfrom'qs'axios.defaults.headers['Content-Type']='application/x-www-form-urlencoded;charset=UTF-8'//'Content-Type':'a......
  • 关于ios手机上拉和下拉到底部和顶部的橡皮筋问题
    之前遇到一个问题,就是写了一个正常的移动端首页,底部是导航,上面的是内容,在安卓手机是页面滑动到底部的时候,不会再滑动的,但是问题就出现在ios手机中。页面正常布局是,导航是p......
  • iOS 审核浅谈:1.4.1、2.1、2.5.2、2.5.4、4.2.3、5.2.5
    整理下近期被Apple残忍虐待的成果。 ps:可以提供一个视频链接,建议用微软的OneDrive。审核员方便点。国内那些个地址都需要登录,需要登录才能看视频的场景,同样会被......
  • 如何提取 IOS Document_apis
    关于IOS私有库的搭建,⽹上的教程很少,目前为止,发现的⼀个⽐较好的⽂章,是教你私有库的搭建和扫描,但是⽂章因为存在时间⽐较⻓,套在现在框架中,难免有些不适⽤,我就在⼤神(Deft_MK......
  • iOS小技能:地理编码(地址转坐标)
    前言需求:手动输入位置信息需要进行地理编码获取经纬度,判断是否为国内地址。I高德位置服务:地理编码(地址转坐标)用户在高德地图官网申请Web服务API类型Key:https://lbs.amap......
  • 从几个开源项目浅谈IOS视频流输出方案
    IOS远程控制技术当中,最重要的环节是视频的输出,本文就目前出现的几种IOS视频流技术做一个实践和对比,重点会放在比较这几个方案在性能上的优缺点。方案分析IOS视频流方案,目前......
  • iOS小技能:金额格式处理 (货币符号本地化)
    引言iOS系统自带格式化NSFormatter的常用子类有:NSNumberFormatter(数字格式化)、NSDateFormatter(NSISO8601DateFormatter日期格式化)、NSPersonNameComponentsFormatter(名片格......
  • [iOS]遇到了一个问题:“XXXX”中无法使用Apple Pay ,检查此应用的设置并确定其设计可使
     在钥匙串里查看,发现当时申请的MerchantIDXXXX证书过期1.到apple开发者: https://developer.apple.com/account/#/overview/ 查看 Certificates,Identifiers......
  • ios(siri)控制windows的一种思路
    通过siri控制Windows可以解决一些远程控制场景。比如:睡觉前远程关闭电脑;语音(siri)控制电脑音量,控制应用运行等;具体实现:1.需要电脑开启sshserver,可以在Windows【设置】......
  • 使用iOS手势UIGestureRecognizer(转)
    UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势:1、......