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

能否在Xcode构建进程中止时执行清理脚本?

解决构建中止时无法恢复Info.plist的问题

可以通过在shell脚本中设置**信号陷阱(trap)**来实现构建中止时自动执行清理逻辑,不管构建是正常完成、被中断还是异常终止,都能保证原始Info.plist被恢复。

具体实现方案

在你的构建脚本开头添加陷阱处理逻辑,示例如下:

# 定义清理函数:恢复原始Info.plist
cleanup() {
    if [ -f Info.plist.temp ]; then
        mv -f Info.plist.temp Info.plist
        echo "[Cleanup] 已恢复原始Info.plist文件"
    fi
}

# 设置陷阱:捕获脚本退出、中断、终止信号,触发清理
trap cleanup EXIT INT TERM

# 复制原始plist到临时文件
cp Info.plist Info.plist.temp

# 这里写入你Debug模式下更新Info.plist的代码
# ...(比如plutil修改、sed替换等操作)

关键说明

  • EXIT信号会覆盖脚本正常结束、错误退出的场景;INT对应Ctrl+C手动中断的信号;TERM对应进程被强制终止的信号,基本覆盖所有构建中止的情况。
  • 清理函数里先检查临时文件是否存在,避免因临时文件缺失导致mv命令报错。
  • 如果是在Xcode的「Run Script」构建阶段中使用这段逻辑,直接将代码粘贴到脚本框即可,无需额外配置。

内容的提问来源于stack exchange,提问作者Yamamoto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:37:06