0

这是我的开发设置:

在 MacOS 上,我使用 Xcode 来编辑和构建(但不运行)我的代码(我在 Xcode/MacOS 下构建只是为了确保项目中没有语法错误)。我swift package generate-xcodeproj用来创建 Xcode 项目,之后对 Xcode 项目进行一些脚本调整,因为我需要添加一些设置。

在运行 Ubuntu 的 Docker 容器中,在 Mac OS 的终端窗口中,在与 Mac OS 相同的目录中,我运行我的测试。

我遇到的问题是每次我切换“边”时——开始在 Docker/Ubuntu 中进行测试,或者开始在 Xcode 中编辑,似乎我必须删除 .build 文件夹。然后涉及下载和构建所有包。

如果我在没有清理和重建 Xcode 项目的情况下从 Docker/Ubuntu 工作到 Xcode/MacOS,我会在 Xcode 中构建我的服务器: Xcode 构建错误

如果我生成 Xcode 项目,然后尝试在 Docker/Ubuntu 上构建和测试,swift test则对所有包进行更新,这需要时间,然后必须构建项目。在 Docker/Ubuntu 上运行测试后,当我回到 MacOS 并尝试在 Xcode 中构建项目时,我遇到了失败: 在此处输入图像描述

对于它的价值,在 Mac OS 上,这是我的 Swift 版本:Apple Swift 版本 5.2.2 (swiftlang-1103.0.32.6 clang-1103.0.32.51)

在 Linux 上:Swift 版本 5.2.3 (swift-5.2.3-RELEASE)

这真的让我不得不重新生成项目,重新下载包,并在每次切换时在每一侧重建。想法?

4

1 回答 1

1

好吧,我想出了一个答案:在我在 Docker/Linux 上的所有脚本中,我都添加了--build-path .build.linux. 例如:

swift build --build-path .build.linux 

swift test --build-path .build.linux

默认情况下,当我为 MacOS 生成 Xcode 项目时,它会放入 Swift 包.build,所以我有分离。

只要项目中使用的包不改变,这应该可以很好地工作。如果他们这样做,我将不得不在双方更新它们。

于 2020-07-09T02:03:08.320 回答