如何在Build Phases的Run Script中检测构建是否由SwiftUI Preview触发?
检测SwiftUI Preview触发的构建并调整SwiftLint行为
你可以通过检查Xcode构建时的环境变量来区分是否是SwiftUI Preview触发的构建,实现你需要的逻辑的脚本如下:
# 检测是否为SwiftUI Preview触发的构建 if [ "$ENABLE_PREVIEWS" = "YES" ] || [ "$XCODE_RUNNING_FOR_PREVIEWS" = "1" ]; then # Preview构建仅执行基础检查,避免自动修改文件 swiftlint else # 常规构建先自动修复格式化,再执行检查 swiftlint --fix --format && swiftlint fi
关键说明:
- Xcode在SwiftUI Preview启动构建时,会自动设置
ENABLE_PREVIEWS为YES或XCODE_RUNNING_FOR_PREVIEWS为1(不同Xcode版本可能略有差异,同时检查两个变量可提升兼容性) - 脚本完全匹配你的需求:Preview构建不执行
--fix --format,避免文件被自动修改后弹出“保留更改/恢复”对话框,进而防止Xcode崩溃;常规构建则按原有流程执行修复和检查
将上述代码直接复制到项目的Build Phases → Run Script阶段即可使用。
内容的提问来源于stack exchange,提问作者fer0n
相关产品推荐
相关产品推荐

