从 Xcode

问题描述

你好:) 我正在尝试实现一个新的 xcode 行为,它在当前打开的 Xcode 文件上运行 swiftlint 的自动更正。如果我从终端运行脚本,它运行得很好,但是,如果我通过 xcodes 行为执行脚本,除了 swiftlint 部分之外的所有脚本都会被执行(当我尝试将输出打印到文件时,它只输出空行)。我确实设置了 chmod u+x 的权限,所以我认为应该没问题。也许有人可以帮我弄清楚是什么原因?我好像走到了死胡同,找不到任何有类似问题的人:(

这是我的脚本:

#!/bin/sh
fileName=$(osascript <<END
tell application "Xcode"
    set t to name of front window
    set o to offset of " — " in t
    if o > 0 then set t to text 1 thru (o - 1) of t
    return t
end tell
END)

fullPath=$(find . -name "$fileName")
swiftlint autocorrect --path $fullPath

这使用 AppleScript 从 Xcode 中提取当前活动的文件,然后在其上运行 swiftlint。

提前致谢

解决方法

有趣的是,我在发布问题几分钟后找到了解决方案。

问题是 Xcode 无法识别 swiftlint 命令,所以我用完整路径替换了它并且它起作用了!:)