Swift 包管理器条件编译不尊重标志

2023-12-25

我有一个具有以下结构的 Package.swift 文件

var package = Package(
  name: "MyProject",
  targets: [
    Target(name: "MyProject")
  ],
  dependencies: [],
  exclude: ["Exclude"]
)

#if DEBUG
  package.dependencies.append(Package.Dependency.Package(url: "Dependency-One.git", majorVersion: 0, minor: 0))
#else
  package.dependencies.append(Package.Dependency.Package(url: "Dependency-Two.git", majorVersion: 0, minor: 0))
#endif

当我使用以下任何一项构建它时:

swift build
swift build -c release
swift build -c debug
swift build -c RELEASE
swift build -c DEBUG

它仍然总是下载 Dependency-Two.git。如果我在上述所有内容前面加上

rm -rf .build/ && rm -rf Packages/

所以我不认为这是因为它重用了一些缓存。有可能在这里做我想做的事情吗?


仍然不可用。我的解决方法是创建多个 Package.swift 文件,名称如下Package-DEBUG.swift并让脚本将相应的脚本复制到Package.swift在构建时。

这确实是一种无需动脑筋的解决方法,SPM 开发人员确实需要实现命令行标志。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 包管理器条件编译不尊重标志 的相关文章

  • 使用 SPM(Swift 包管理器)获取本地文件的 URL

    我正在尝试阅读 json文件放在我的单元测试中并在 Swift Package 中运行它 使用 Xcode 11 和 Swift 5 1 let path Bundle main url forResource filename withE
  • Swift 包管理器无法编译通过 Homebrew 安装的 ncurses

    我正在尝试使用 Swift Package Manager 在库中使用 ncurses 并且我想使用特定版本的 ncurses 而不是 OS X 中包含的版本 为此 我使用 Homebrew 安装了更新版本 6 1 这就是我的Package
  • ITMS-90334:通过 Xcode Cloud 构建时代码签名标识符无效

    我已经开始在 Swift 包中收集一小部分帮助程序代码以满足我自己的需要 如果我使用 Swift Package Manger 将此包包含在我的主项目中 并尝试使用 Xcode Cloud 构建它 我会收到以下错误 ITMS 90334 I
  • Swift 包管理器条件编译不尊重标志

    我有一个具有以下结构的 Package swift 文件 var package Package name MyProject targets Target name MyProject dependencies exclude Exclu
  • Vapor Xcode 项目中两个几乎相同的目标

    我想配置 Package swift 以便一个目标成为另一个目标的扩展 它们都应该共享一个文件夹中的相同代码 但对于 扩展 版本 还有一个额外的子文件夹 但我尝试使用的配置path因 重叠源 错误而失败 那么 如何使两个目标具有相同的源文件
  • 将 Swift Package 添加到自定义框架

    创建具有 SPM 依赖项的框架相当新鲜 因此 我创建了一个新的框架项目 添加了一些类 文件以及 SPM 依赖项 CocoaLumberjack 记录器 框架编译良好 当我寻找我计划嵌入到其他项目中的框架产品时 我看到它位于我的产品文件夹中
  • 如何在 Xcode 9 Playground 中使用 Swift 包管理器 [重复]

    这个问题在这里已经有答案了 是否可以在 Xcode 9 Playground 中使用 Swift Package Manager 目前无法在 Playground 中使用 Swift Package Manager 原因是 Swift 包管
  • Swift 包管理器有本地缓存​​吗?

    每次我加载新包时 Xcode 都会从 Github 重新下载所有依赖项 而不是重用我已经为其他项目加载的一些依赖项 例如 我希望当我引用时 package name SwiftyJSON url https github com Swift
  • 如何从 Xcode 源代码管理导航器中删除 Swift 包依赖项

    我尝试了一个包 但决定不使用它 因此 我通过 项目设置 gt Swift Packagesm 删除了迄今为止有效的相应依赖项 关键是 相应的存储库仍然列在源代码管理导航器中 在我自己的项目下方 并且有一个名为 Swift Package D
  • 将 xib 文件添加到 Swift 包

    我想开始使用模块化代码以及新的 Swift Package Manager 与 Xcode 11 的集成 问题是我似乎无法将任何类型的 UI 文件添加到我的新包中 我只需要添加一个 xib 文件 这是如何实现的 目前 Swift 包仅支持源
  • 如何安装较新的 swift-tools-版本?

    我第一次尝试创建一个新的 Swift 包 根据这个苹果文档 https developer apple com documentation swift packages bundling resources with a swift pac
  • 使用 Swift Package Manager 时如何生成用于开发的 Xcode 项目文件

    我正在使用新的开源 Swift Package Manager 并且能够下载文件 我希望管理器根据它检索到的包创建一个 开发环境 通过 Xcode 有人处理过这个吗 更新 正如其他答案中提到的 您现在可以使用以下命令生成 Xcode 项目文
  • Swift 包和冲突的依赖项

    我见过的每个包管理器中最具挑战性的任务之一就是处理冲突的依赖关系 让我们研究以下假想的应用程序SwiftApp 这取决于一些第三方软件包 SwiftApp packageA latest email protected cdn cgi l
  • Xcode 13.1 bug 将依赖项编辑为本地

    刚刚升级到 Xcode 13 1 并通过单击具有一些依赖项的 Package swift 文件打开了一个 SPM 项目 在以前的版本中 我可以通过将包的本地克隆拖到项目导航器中来简单地编辑这些依赖项之一 然后 Xcode 将忽略签出的依赖项
  • 如何在 Xcode 中更新 Swift 依赖项

    在我创建一个带有依赖项的新 swift 包后 我调用swift package generate xcodeproj 如果我的依赖项有新版本 我会调用swift package update 我的依赖项的新版本已下载并构建 但 Xcode
  • 更改 Swift Package 中的默认标头注释许可证

    我想更改 Swift 包中的默认标头 这可能吗 Note 我不想为了项目而改变它 这个有可能 如果你想改变 它适合您的项目 更改 Xcode 中的默认标头注释许可证 https stackoverflow com questions 238
  • Xcode 14.0 - PackageIndex.findPackages 失败:featureDisabled 警告

    自从我升级到 Xcode 14 0 后 我收到以下警告 PackageIndex findPackages failed featureDisabled 网络搜索没有得到任何结果 我有一个SPM包 但似乎没有任何问题 有人知道如何摆脱这个警
  • Swift 包管理器:“多个目标名为...”

    我正在尝试构建一个服务器端 Swift Web 应用程序 我的应用程序的基础框架将是Kitura https www kitura io来自IBM 此外 我还想利用AWS SDK Swift https github com noppoMa
  • 如何将自定义 C 代码放入 SwiftPM 包中?

    我正在尝试将 C 代码打包到 Swift 模块中 我们称之为CModule 一旦我将其放入项目的基本文件夹中 Swift模块 并配置了搜索路径 我可以在 Swift 文件中自动完成工作 并检测错误 警告 问题是 导入时它无法识别该模块 并且
  • 如何指定输出可执行文件的名称?

    默认情况下 SPM 会构建与包含其模块文件夹同名 大写 的可执行目标 main swift 如何让它使用不同的文件名构建二进制文件 我找不到任何说明SPM手册 https github com apple swift package man

随机推荐