如何防止 Xcode 存档包含我的子项目的产品?

How to prevent Xcode Archive from including my sub projects' Products?

我正在尝试使用 Xcode 10.2.1 构建应用程序并将其提交到 Mac App Store。

但是,当我存档时,Organizer 没有显示我的应用程序的版本,右侧的按钮标题为 "Distribute Content" 而不是应有的 "Distribute App"。而且我不会选择上传到商店。

当我导出到磁盘时,我看到存档在顶层包含一个 "Products" 文件夹,然后是包含我所有包含的子项目的多个文件夹,包含框架和辅助工具。

因为所有这些都已经链接到应用程序中,所以我当然不需要将它们作为单独的项目也放在存档中。我怀疑这就是我无法从组织者提交应用程序的原因。

如果我进行常规构建,build/Release 文件夹仅包含应用程序,不包含其他产品。

我可能做错了什么,即如何防止子项目的产品包含在主项目的存档中?

我需要将这些其他项目保留在主项目中,这样我在更改其中一个源文件中的代码时就不会忘记构建它们。

以下是我如何设置的一些信息:

当我打开其显示三角形时,主项目会在左侧浏览器中显示其他项目。

主项目的目标构建阶段也列出了这些子项目的目标。

Scheme,在Build下,显示了主要项目的目标,其他目标是children。勾选所有复选框。

Scheme,在 Archive 下,选择发布构建配置。

Work-around

目前,我会定期构建应用程序,然后使用 cmdline 工具创建一个 pkg 文件,然后使用 Apple 的应用程序加载器上传该文件:

productbuild --component "MyApp.app" /Applications --sign "3rd Party Mac Developer Installer: My Name" "MyApp.pkg"

这表明我的应用程序没有问题。给组织者带来麻烦的只是添加的产品。

this Tweet 中所建议,解决方案是在每个子项目的构建设置中将 "Skip Install" 设置为 YES。