xcodebuild忽略-derivedDataPath参数,是使用错误还是Bug?
这个是Xcode 12.5.x版本的已知Bug,并非对-derivedDataPath参数的理解有误。
该问题的根因是Xcode 12版本的新构建系统存在缓存优先级判断异常:只要对应项目此前在默认Library/Developer/Xcode/DerivedData路径下生成过构建缓存,就算命令行显式传入了自定义-derivedDataPath参数,xcodebuild也会优先读取旧缓存对应的路径,忽略命令行传入的自定义配置。
可通过以下方案解决:
- 执行构建前先清理默认DerivedData路径下的对应项目缓存,或者直接使用配套参数执行clean操作后再构建:
xcodebuild clean -project MyProj.xcodeproj -scheme "MyProj (iOS)" -derivedDataPath=/Users/alpe77/myproj/MyProj/Build
- 若清理后仍存在异常,可以额外添加
-clonedSourcePackagesDirPath参数指定Swift依赖包的存储路径,和自定义DerivedData路径配套使用,避免依赖缓存拉取触发路径回退 - 直接升级到Xcode 13及以上版本即可完全修复该问题,此参数失效Bug已经在Xcode 13正式版中被官方修复。
内容的提问来源于stack exchange,提问作者alekop
相关产品推荐
相关产品推荐

