问题标签 [swift-package-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - Swift 包和冲突的依赖项
我见过的每个包管理器中最具挑战性的任务之一就是处理相互冲突的依赖关系。
让我们使用以下虚构的应用程序SwiftApp,它依赖于一些 3rd 方包。
- SwiftApp
- packageA@latest
- packageC@1.0.0
- packageD@latest
- packageB@latest
- packageC@2.0.0
- packageE@latest
从上面的依赖图中,我们可以看到SwiftApp的两个依赖都使用packageC,但使用不同的主要版本标识符。对于大多数语言生态系统来说,这会成为一个问题——主要版本的提升通常意味着对代码进行了更改,这些更改与以前的主要版本不向后兼容。
根据语言/编译器/其他相关组件的技术能力,包管理器可以通过以下方式之一实现:
- 拒绝安装/编译(php、ruby、python?、其他?)
- 没关系,让开发者处理潜在的编译器错误(???)
- 分别为两个包安装packageC(Node.js,其他?)
第三种选择只能在语言或编译器本身的适当支持下才能实现。
在 Swift 中可以在不破坏的情况下实现这个依赖图吗?
换句话说,packageA是否有可能拥有(并使用)packageC 的 1.0.0 版本,而packageB拥有2.0.0 版本?
鉴于最近宣布 Swift 现在是开源的并且带有自己的包管理器,我认为这个问题对于未来对 Swift 包开发感兴趣的读者可能非常有价值。
xcode - 使用 Swift 包管理器时,如何生成 Xcode 项目文件以进行开发
我正在使用新的开源 Swift 包管理器并且能够下载文件。我希望经理根据它检索到的包创建一个“开发环境”(通过 Xcode)。
有人处理过这个吗?
swift - 使用 Swift 包管理器添加目标依赖项时出错
尝试包含目标依赖项时出现错误:The manifest describes a target that cannot be found in your source tree: parser
这是我的 Package.swift 文件:
我遵循此处描述的格式:https ://github.com/apple/swift-package-manager/blob/master/Documentation/Package.swift.md
swift - 是否可以使用 Swift 包管理器编译和包含 C 库?
我试图只包含头文件和 c 文件,但它们似乎被忽略了
swift - 如何通过 Swift 包管理器在 Xcode 中安装包
我正在 Xcode 中开发一个项目,并尝试通过 Swift 包管理器安装和使用CryptoSwift包。
我阅读了有关 SPM 的文档,但没有看到有关如何通过 Xcode 调用 SPM 的说明。
这些例子经常提到调用$ swift build
。这是否意味着只能从命令行访问 SPM?如果是这样,我应该在哪里创建Package.swift
文件?
我对 Xcode 相当熟悉,但我并不真正理解项目的构建设置部分的含义,或者如何使用 Swift 模块。
编辑:这个问题最初是针对 Swift 2.1.1 附带的 Xcode 7.2 提出的。很乐意接受解释如何使用当前/未来版本的 Xcode 执行此操作的答案。
swift - Swift 包管理器 - UIKit 依赖
我的项目中有一个 Package.swift,例如:
当我运行时,swift build
我会收到类似的错误......</p>
我应该在哪里告诉 swift 包管理器在哪里可以找到 UIKit?
swift - 从 SPM 解析多个 Package.test 测试目标
似乎如果我的库创建了测试,并且我还依赖于测试,那么我会收到错误消息:
:0:错误:无法构建节点:''(节点由多个命令生成;例如,''和'')
它可以在debug.yaml
如果我将其中一个构建目标重命名为在 中Package2.test
手动debug.yaml
,它可以工作。
有没有办法可以指定测试目标名称或解决此问题?
swift - 包内模块依赖
我有一个 Swift 包(你可以在这里下载,它是一个纯 Swift markdown 实现),它有两个模块,一个是库,第二个是可执行文件。运行swift build
将正确找出构建库,然后构建可执行文件,但在尝试链接错误时失败
当然,引用的符号是我尝试使用的方法(或在本例中为属性)(对字符串的扩展)。
我想问题是:对于包中的模块是否必须做任何特定的事情以确保它们链接在一起?