swift - 使用 Xcode 在 MacOS 上进行服务器端 Swift 开发,在 Docker Ubuntu 上进行测试 : How do I not clean/recreate each time?

标签 swift xcode macos ubuntu server-side-swift

这是我的开发设置:
在 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 build error
如果我生成 Xcode 项目,然后尝试在 Docker/Ubuntu 上构建和测试,swift test对所有包进行更新,这需要时间,然后必须构建项目。在 Docker/Ubuntu 上运行测试后,当我回到 MacOS 并尝试在 Xcode 中构建项目时,我遇到了失败:
enter image description here
对于它的值(value),在 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)
这真的让我不得不重新生成项目,重新下载包,并在每次切换时在每一侧重建。想法?

最佳答案

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

swift build --build-path .build.linux 
swift test --build-path .build.linux
默认情况下,当我为 MacOS 生成 Xcode 项目时,它会将 Swift 包放在 .build 中。所以我有分离。
只要项目中使用的包不改变,这应该可以很好地工作。如果他们这样做,我将不得不在双方更新它们。

关于swift - 使用 Xcode 在 MacOS 上进行服务器端 Swift 开发,在 Docker Ubuntu 上进行测试 : How do I not clean/recreate each time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62805684/

相关文章:

macos - Swift - NSMenuItem Popover 没有获得焦点

macos - 沙盒 Mac 应用程序可以读取/写入哪些非用户目录?

ios - Swift 协议(protocol)泛型错误(ORM 实现)

swift - 为什么 layoutIfNeeded() 允许在更新约束时执行动画?

ios - swift 3/ Alamofire 4 : Fetching data with the ID on a TableView

iphone - 在 UITableViewCell 和 UITableViewController 之间传递数据?

json - 为什么我的 Swift 代码无法根据 .json 数据中的值正确计算分数

swift - 将结构数组分配给协议(protocol)数组

c++ - 代码错误 "ld: library not found for -lmysqlclient "

macos - 在 OSX 下将许可证文件附加到 dmg