【问题标题】:Two almost identical targets in Vapor Xcode projectVapor Xcode 项目中的两个几乎相同的目标
【发布时间】:2020-01-08 19:34:59
【问题描述】:

我想配置 Package.swift 以便一个目标成为另一个目标的扩展,它们都应该从一个文件夹共享相同的代码,但对于“扩展”版本,还有一个额外的子文件夹。但是我尝试使用path 的配置失败并出现“重叠源”错误。那么,我怎样才能使两个目标具有相同的源文件夹?

.target(name: "App", dependencies: [ "Vapor" ... ], exclude: [ "Subfolder" ])
.target(name: "Extended", dependencies: [ "Vapor", ... ], path: "./Sources/App")

swift build ... error: target 'Extended' has sources overlapping sources...

【问题讨论】:

    标签: swift vapor swift-package-manager


    【解决方案1】:

    SwiftPM 严格要求一个目标拥有文件。所以你需要为你的文件建立一个合适的依赖链。

    在这种情况下,听起来ExtendedApp 添加了更多功能。如果是这样,您希望拥有App 目前所有的东西。然后让 Extended 依赖于 App 并构建它独有的所有东西。

    这允许 1 个目标拥有源文件并允许 Extended 使用这些文件的一个实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 2017-03-26
      相关资源
      最近更新 更多