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

如何让Xcode跨电脑构建时将项目二进制文件输出至固定位置?

解决Xcode跨电脑编译输出路径不一致的问题

方法一:指定固定编译输出路径(推荐)

直接让Xcode把编译产物输出到自定义的固定路径,彻底避开DerivedData里的随机串问题,有两种实现方式:

1. Xcode图形界面配置

  • 打开项目,点击顶部菜单栏的Project -> Build Settings
  • 在搜索框输入Build Products Path,将默认值修改为项目内的相对路径(比如$(SRCROOT)/Build/Products),产物会直接生成在项目根目录的Build文件夹下
  • 或者搜索Derived Data Location,选择Custom并指定固定路径,整个DerivedData目录都会放到这里,避免随机串生成

2. xcodebuild命令行指定

执行构建命令时,通过-derivedDataPath参数指定自定义的DerivedData路径,示例:

xcodebuild -project YourProject.xcodeproj -scheme YourScheme -configuration Debug -derivedDataPath ./Build/DerivedData

编译完成后,产物会在./Build/DerivedData/Build/Products/Debug/ProjectName路径下,跨电脑路径完全一致。

方法二:获取DerivedData中的随机串(无需单独提取,直接拿产物路径更高效)

如果必须使用默认的DerivedData路径,可以直接提取最终产物的完整路径,无需单独处理随机串:

1. 通过xcodebuild构建设置提取

使用-showBuildSettings参数输出所有构建配置,从中提取BUILT_PRODUCTS_DIR(产物所在目录):

# 获取Debug配置的产物目录
PRODUCT_DIR=$(xcodebuild -project YourProject.xcodeproj -scheme YourScheme -configuration Debug -showBuildSettings | grep -m 1 "BUILT_PRODUCTS_DIR" | awk -F ' = ' '{print $2}')
# 拼接二进制文件路径
BINARY_PATH="$PRODUCT_DIR/ProjectName"

这个方法直接拿到最终路径,完全不需要关心中间的随机串,跨电脑通用。

2. 通过DerivedData目录搜索获取

如果需要定位到包含随机串的DerivedData根目录,可通过目录匹配搜索:

# 获取项目对应的DerivedData根路径
DERIVED_DATA_ROOT=$(find ~/Library/Developer/Xcode/DerivedData -name "ProjectName-*" -type d | head -n 1)
# 拼接产物路径
PRODUCT_PATH="$DERIVED_DATA_ROOT/Build/Products/Debug/ProjectName"

不过这种方法依赖本地DerivedData目录的存在,不如第一种命令行方式稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:12:26