Xcode14.3中xcodebuild指定DSTROOT参数时构建报错求助
Xcode14.3下xcodebuild指定DSTROOT报错的排查与解决
针对Xcode14.3发布后,使用xcodebuild结合DSTROOT参数构建归档时出现的错误,结合你提供的信息,可从以下几个方向排查解决:
1. 清理归档路径的特殊字符
错误中涉及的归档文件名AdHoc 09-05-2023, 4.26 pm 2.xcarchive包含逗号、空格等特殊字符,Xcode14.3对路径解析的校验更严格,这类字符容易导致路径识别失败。建议将归档文件名改为无特殊字符的格式,比如:
AdHoc_20230905_1626_2.xcarchive
2. 提前创建归档目标的父目录
错误提示明确提到“包含归档文件的文件夹不存在”,Xcode14.3可能不再自动创建归档路径的父目录。在执行归档命令前,先用mkdir -p创建目标目录,比如:
archiveDir="$buildOutput/archives" mkdir -p "$archiveDir" # 之后执行xcodebuild归档命令,指定-archivePath为"$archiveDir/AdHoc_20230905_1626_2.xcarchive"
3. 拆分构建与归档流程
Xcode14.3之后,归档流程对构建产物的依赖路径有变更,直接用DSTROOT传递产物到归档流程可能触发校验失败。建议拆分构建和归档步骤:
- 第一步:仅执行构建,将产物输出到指定的
BUILD_DIR和SYMROOTbuildOutput="$PWD/$relativePath/output" xcodebuild build \ -workspace YourApp.xcworkspace \ -scheme YourScheme \ -configuration AdHoc \ BUILD_DIR="$buildOutput/build" \ SYMROOT="$buildOutput/symbols" - 第二步:单独执行归档命令,指定归档路径
xcodebuild archive \ -workspace YourApp.xcworkspace \ -scheme YourScheme \ -configuration AdHoc \ -archivePath "$buildOutput/archives/AdHoc_20230905_1626_2.xcarchive"
4. 验证构建路径配置是否正确
通过-showBuildSettings参数查看Xcode实际识别的InstallationBuildProductsLocation路径,确认是否与预期一致:
xcodebuild \ -workspace YourApp.xcworkspace \ -scheme YourScheme \ -configuration AdHoc \ -showBuildSettings | grep InstallationBuildProductsLocation
如果该路径与你生成.app的output/Applications不符,需要调整DSTROOT或BUILD_DIR的赋值,确保Xcode能找到完整的构建产物。
内容的提问来源于stack exchange,提问作者Tony Matt
相关产品推荐
相关产品推荐

