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 包管理器条件编译不尊重标志 的相关文章

  • Swift 包管理器无法编译通过 Homebrew 安装的 ncurses

    我正在尝试使用 Swift Package Manager 在库中使用 ncurses 并且我想使用特定版本的 ncurses 而不是 OS X 中包含的版本 为此 我使用 Homebrew 安装了更新版本 6 1 这就是我的Package
  • 专门使用 Github actions 为 iOS 构建 swift 包

    我有 iOS 应用程序的 swift 包 它需要UIKit跑步 我不想使用 Github 操作构建这个包 这就是我的工作流程 name Swift on push branches main pull request branches ma
  • Vapor Xcode 项目中两个几乎相同的目标

    我想配置 Package swift 以便一个目标成为另一个目标的扩展 它们都应该共享一个文件夹中的相同代码 但对于 扩展 版本 还有一个额外的子文件夹 但我尝试使用的配置path因 重叠源 错误而失败 那么 如何使两个目标具有相同的源文件
  • 在 Swift 包管理器中添加对二进制目标的依赖项

    我想创建一个带有具有子依赖项的二进制目标的 Swift 包 由于二进制目标不支持开箱即用的子依赖项 因此我创建了一个包装器目标 该目标既依赖于二进制框架又依赖于所述的其他依赖项here https stackoverflow com a 6
  • Swift 包管理器有本地缓存​​吗?

    每次我加载新包时 Xcode 都会从 Github 重新下载所有依赖项 而不是重用我已经为其他项目加载的一些依赖项 例如 我希望当我引用时 package name SwiftyJSON url https github com Swift
  • Xcode 12.5:SPM 依赖项缓存位置

    Swift 包管理器有了新的Xcode 12 5 中的功能 https developer apple com documentation xcode release notes xcode 12 5 beta release notes
  • Swift 中的 import func、struct、class 和 @_exported 是什么?

    在 Apple 的 github 中 他们使用 Swift 包管理器 import func POSIX isatty import func libc strerror r import var libc EINVAL import va
  • Travis CI - Swift 包管理 - 结账已经存在?

    尝试在配置为使用 Swift Package Manager 的项目中设置示例项目并收到奇怪的错误 项目结构 MyProject Package swift MyProject etc Samples MySampleProject Swi
  • 如何安装较新的 swift-tools-版本?

    我第一次尝试创建一个新的 Swift 包 根据这个苹果文档 https developer apple com documentation swift packages bundling resources with a swift pac
  • 复制 Xcode SPM 测试的资源文件

    我是 Swift 包管理器的新手 但随着它集成到 Xcode 11 中 是时候尝试一下了 我在新工作区中有一个新应用程序和 SPM 库 我有一个带有测试的工作库 并已成功将该库导入到应用程序中 我需要使用解析 json 文件的新测试来扩展
  • 使用 Swift Package Manager 时如何生成用于开发的 Xcode 项目文件

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

    我见过的每个包管理器中最具挑战性的任务之一就是处理冲突的依赖关系 让我们研究以下假想的应用程序SwiftApp 这取决于一些第三方软件包 SwiftApp packageA latest email protected cdn cgi l
  • Swift 包管理器和 Xcode:保留 Xcode 设置?

    我正在使用 Swift 开发服务器并使用 Swift 包管理器 当我在 Mac OS 系统上进行开发时 发现它很方便生成 Xcode 项目以使用 Xcode 作为我的 IDE 即 有时 我的包依赖项必须更新 我一直在使用swift pack
  • Xcode 13.1 bug 将依赖项编辑为本地

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

    在我创建一个带有依赖项的新 swift 包后 我调用swift package generate xcodeproj 如果我的依赖项有新版本 我会调用swift package update 我的依赖项的新版本已下载并构建 但 Xcode
  • Xcode 14.0 - PackageIndex.findPackages 失败:featureDisabled 警告

    自从我升级到 Xcode 14 0 后 我收到以下警告 PackageIndex findPackages failed featureDisabled 网络搜索没有得到任何结果 我有一个SPM包 但似乎没有任何问题 有人知道如何摆脱这个警
  • Swiftlint 覆盖与 SPM 相关的项目设置

    我遇到了 swiftlint 自动更正的奇怪行为 我的项目使用通过 SPM 导入的库 但是当我运行 linter 时 它会更改如下设置 B4621A7323D0A90F00545ADE LibraryName in Frameworks i
  • 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

随机推荐