前言:
公司的代码用的Swift写的。对于代码格式有着一定的要求。提了代码Pull Request之后,Code Review报了一堆警告。所以让本地安装一个SwiftLint。
然而并没有这么顺利。安装的时候报错了。
报错1:SourceKittenFramework/library_wrapper.swift:31: Fatal error: Loading sourcekitd.framework/Versions/A/sourcekitd failed
这是我命令行运行 swiftlint analyze 的时候出现的。此时我已经使用 homebrew 安装了 SwiftLint,并且也是升级到了最新版本。无论怎么切换到项目目录,或者在根目录,都不行,这个错误和 .swiftlint.yml 这个文件无关。
![](https://img.haomeiwen.com/i1235875/e4a6446acf863e78.png)
解:
在命令行输入
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
理由看这里:
fatal error: Loading sourcekitd.framework/Versions/A/sourcekitd failed #1466
![](https://img.haomeiwen.com/i1235875/5537697f0bafa0bb.png)
报错2:Showing All Messages SwiftLint not installed, download from https://github.com/realm/SwiftLint
这句话其实来源于你从网上复制粘贴过来的脚本:
if swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
然后它会这样出现在你的编译log里面:
![](https://img.haomeiwen.com/i1235875/bf6d99e3c3ecb714.jpeg)
会发现这个东西,是因为,在我在解决了报错1之后,继续在命名行里运行 swiftlint analyze,这次虽然没有报和上次一样的错,但是多了一堆输出,然后我打开Xcode工程,发现并没有和预期的一样给我检查代码的语法规范。就很不理解。去编译log里面看,才发现是脚本这玩意输出,说我没装 SwiftLint,混蛋,我明明装了。
解:
把Xcode里的脚本换成这个:
alias swiftlint="/opt/homebrew/bin/swiftlint"
if swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
![](https://img.haomeiwen.com/i1235875/dc3817f17bc3d93d.jpeg)
理由看这里:
How to fix the "SwiftLint not installed" warning on M1 Macs
好家伙,又是这个M1芯片,怎么最近的bug都是和M1有关???我手里拿的这个新电脑,最近装各种开发工具都碰到一堆坑,以前根本没有。
把脚本替换之后,Command + B,SwiftLint就能给你报一堆警告了。
结语
这两个报错,用百度去搜,怎么都搜不到解决方案。搜到的都是一堆如何安装的教程。这两个问题的解决方案都是用谷歌搜索找到的。你要说,~~作为一个稍微有点年头的程序猿~~,这么点报错都修不了吗?抱歉,我真的修不了,真不会...
网友评论