xcodebuild 归档所有目标而不是一个

xcodebuild archives all targets instead of one

我需要从我的 xcodeproj 中存档一个特定的方案。为此,我 运行

xcodebuild archive \
    -scheme $SCHEME \
    -target $TARGET \
    -archivePath $ARCHIVE_PATH

虽然我明确定义了一个方案和目标,结果xcarchive包含两个目标和后续的IPA导出调用抱怨

error: the archive at path '<path>.xcarchive' is not a single-bundle archive
** EXPORT FAILED **

为什么 xcodebuild 生成包含多个包的存档?

是项目方案的问题。我通过复制原始方案而不是添加新方案来创建新方案。结果方案然后在构建部分列出了 2 个目标而不是一个(只有上帝知道为什么)并且 Xcode 不会让我删除另一个目标。

删除所有方案并从头开始创建它们后,一切正常。

发生这种情况的另一种情况是您的 sub-project(目标依赖项)在构建设置中将 Skip Install 设置为 No

要找到哪个 sub-project,请检查存档中的内容。产品文件夹应该只有一个产品。

在我的例子中,sub-project 是一个动态库,并添加到 /<path to archive>/Products/usr/lib/<library> 路径下的存档中。