SwiftLint(SPM)尾随空格自动修正因沙箱限制失效
解决Xcode中SwiftLint自动修正的沙箱权限问题
核心原因
Xcode构建过程的沙箱限制了Run Script的文件访问权限,且SPM集成的SwiftLint在沙箱内无法正常读取项目根目录的配置文件和源码,而终端直接调用Homebrew版本的SwiftLint不受此限制。
解决步骤
统一SwiftLint调用路径
在Xcode的Run Script中直接使用Homebrew安装的完整路径,避免调用SPM集成的版本:- Intel芯片Mac:
/usr/local/bin/swiftlint - Apple Silicon芯片Mac:
/opt/homebrew/bin/swiftlint
示例脚本:
cd "${SRCROOT}" /opt/homebrew/bin/swiftlint --fix- Intel芯片Mac:
修正脚本执行上下文
脚本开头必须添加cd "${SRCROOT}",强制切换到项目根目录,确保SwiftLint能定位到.swiftlint.yml配置文件。如果是多模块项目,可替换为PROJECT_DIR变量。关闭Run Script沙箱限制
打开项目Build Settings,搜索ENABLE_USER_SCRIPT_SANDBOXING,将其设置为NO,彻底解除Xcode对脚本的文件访问限制。确认目录权限
执行以下命令确保项目目录权限正常:chmod -R 755 "${PROJECT_DIR}"
内容的提问来源于stack exchange,提问作者Oleksandr Matrosov
相关产品推荐
相关产品推荐

