Swiftlint无法在Apple Silicon Xcode上找到。

44
安装 SwiftLint 时,使用 Homebrew 一切都正确安装。但是当我打开 Xcode 时,我看到消息说 SwiftLint 没有安装。我阅读了这个 问题,它说 Homebrew 现在在此路径下安装 /opt/homebrew,而 Apple Silicon 和 Xcode 在 /usr/local 中查找 SwiftLint?我如何让 Xcode 确认我已经安装了 SwiftLint。从终端中,我可以输入 SwiftLint 并看到所有命令,所以 Swiftlint 肯定已经安装了。

1
你解决了吗?我也遇到了同样的问题。 - user11270714
4个回答

93

我找不到如何永久修改Xcode构建阶段脚本的$PATH变量。此脚本将在运行期间将Apple Silicon Homebrew路径添加到您的脚本路径中。我已在M1和Intel Mac上测试过,对两者都有效。

# Adds support for Apple Silicon brew directory
export PATH="$PATH:/opt/homebrew/bin"

if which swiftlint; then
    swiftlint —-fix && swiftlint
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

2
"swiftlint autocorrect" 命令已不再可用,请使用 "swiftlint --fix" 命令代替。(swiftlint版本0.47.1) - l --marc l

14

你也可以使用符号链接来链接路径

ln -s /opt/homebrew/bin/swiftlint /usr/local/bin/swiftlint

但要确保您先拥有/usr/local/bin文件夹


1
虽然这种方法能行,但我建议不要采用。在您的本地系统上使用花哨的符号链接无法签入源代码控制,并且这是一个手动步骤,容易因系统而异而导致出错。 - orion elenzil

0
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

0
我在我的M1 Max上遇到了同样的问题,以下是我解决问题的步骤:使用以下命令安装Swiftlint
``` brew install swiftlint ```
然后运行以下命令
``` sudo chown -R $(whoami) /usr/local/bin ln -s /opt/homebrew/bin/swiftlint /usr/local/bin/swiftlint ```
如果你与仍在使用Intel芯片的团队合作,这将有所帮助,因为你不需要在构建脚本中更改路径。

====

另一种方法是改变相位脚本,但仍适用于英特尔和硅芯片。
if test -d "/opt/homebrew/bin/"; then

PATH="/opt/homebrew/bin/:${PATH}"

elif test -d "${HOME}/Documents/SwiftLint"; then

PATH="${HOME}/Documents/SwiftLint:${PATH}"

fi


export PATH

if which swiftlint >/dev/null; then

${PODS_ROOT}/SwiftLint/swiftlint --config 
${PROJECT_DIR}/.swiftlint.yml

else

echo "warning: SwiftLint not installed, download from 
https://github.com/realm/SwiftLint"

fi.     

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接