You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:59:54