问题标签 [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.

0 投票
1 回答
544 浏览

ios - 使用 Swift3 包管理器和 Xcode 8 没有运气

0 投票
1 回答
3331 浏览

objective-c - 用于目标 c 代码的 Swift 包管理器

我很少有旧的目标 c 项目必须转换为框架,以便在现有和新的 xcodeproj 中使用。SPM 会是一个不错的选择吗?请让我知道 SPM 是否适用于纯客观 c 项目?

0 投票
2 回答
385 浏览

swift - Swift Package Manager throws nonWhitelistedFlags error

The problem occurs with system modules where it's necessary to use pkgConfig and pkgConfig contains flag definitions.

ImageMagick (homebrewed)

I create two packages: CMagicWand, type system-module

module.modulemap

Package.swift

Then I try to consume it from the package MagicWand type library

Package.swift

pkgConfig MagickWand.pc

With this setup I execute swift build for the second package and the output is following

I tried to remove problematic CFlags from the corresponding .pc file and this doesn't help, even if I figure out how to remove them (I always can create my own .pc file) I don't find it sustainable. These flags are there for a reason.

I have the same problem with mysqlclient on my target system (Ubuntu), the problem is not reproducible on OS X but it doesn't help me:

The error comes from the func whitelist (https://github.com/apple/swift-package-manager/blob/master/Sources/PackageLoading/Module%2BPkgConfig.swift) and I don't see any way how to enhance the list during runtime. I don't believe that I'm the only one who struggles with this limitation but I can't find a workaround for a few days already.

0 投票
0 回答
914 浏览

swift - SwiftPM:如何设置 Swift module.map 引用两个连接的 C 库

我正在尝试构建一个 Swift 包管理器系统包(一个 module.modulemap),使两个系统 C 库可用,其中一个包含另一个。

也就是说,一个(比如 libcurl)是一个基本模块,另一个 C 库包含它(就像这样:)#include "libcurl.h"。在常规的 C 端,这是可行的,因为 makefile 传递了正确的-I标志并且一切都很好(我大概可以在 SPM 中做同样的事情,但我想避免给 SPM 额外的标志)。

所以我想出的是这个模块图:

CBase在一个运行良好的 Swift 包中导入。但是当我尝试 importCMyLib时,编译器会抱怨:

这是可以理解的,因为编译器不知道在哪里看(尽管我认为这use CBase会有所帮助)。

有没有办法让它工作而不必-Xcc -I在构建过程中添加标志?

更新 1:在某种程度上,这在 Swift SR-145SE-0063: SwiftPM System Module Search Paths中有所涉及。建议使用 Package.swiftpkgConfig设置。这似乎适用于我的特定设置。但是,如果没有.pc文件,那就是鸡和蛋。我尝试在包中嵌入一个自己的.pc文件,但系统包目录未添加到PKG_CONFIG_PATH(因此在编译依赖模块期间不会考虑)。所以问题是:如何在安装了库但没有 oa.pc文件(只有头文件和库)的环境中实现这一点。

0 投票
3 回答
3497 浏览

swift - 如何在 Playground 中使用 Swift 包管理器

是否可以在 Xcode Playground 中使用 Swift 包管理器?

0 投票
1 回答
1277 浏览

swift - swift包管理器链接动态库

我在 linux 上使用了 swift,制作了包含一些库的 Package.swift 文件,但是当我使用 swift build 命令构建项目时,这些库与可执行文件静态链接。我尝试使用swift package generate-xcodeproj命令生成一个 Xcode 项目,在 Xcode 中构建项目,然后打开 Product 目录,我发现库与可执行文件动态链接,Xcode 做了什么?以及如何将其构建为动态链接使用swift build命令,您能帮我吗

0 投票
1 回答
100 浏览

swift - 如何在从命令行编译的 Swift 应用程序中使用文件夹?

我正在使用 Swift3 和 Swift 包管理器构建一个简单的网络服务器。在您的项目文件夹中运行swift build将构建在Sources目录中找到的所有源并输出一个可执行文件。但是,我发现如果我在 Sources 目录中创建文件夹来组织我的代码,我的构建就会失败。在我看来,文件夹的存在会导致 swift 将源视为不同的模块。这是原因吗?如果是,我该如何解决?

0 投票
3 回答
1065 浏览

swift - 如何指定输出可执行文件的名称?

默认情况下,SPM 使用与包含其main.swift. 如何让它用不同的文件名构建二进制文件?我在SPM 手册上找不到任何说明。

0 投票
1 回答
322 浏览

swift - Alamofire 库没有响应 Swift 包管理器

我是 Swift 包管理器的新手,我正在创建一个可执行文件,我需要在其中处理 REST API,因为我正在使用 Alamofire,这就是我将它添加到我的包文件中的方式

现在,当我创建请求时,我没有得到任何响应。但是,当我在我的 XCode 项目中使用它时,这个方法会响应我。

当我调试它时,我发现它永远不会进入方法内部,这意味着我既没有收到任何错误也没有任何响应。请让我知道我在哪里做错了?

0 投票
0 回答
419 浏览

python - Swift for Linux:没有这样的模块“Python”

我正在尝试从用 Swift 编写的可执行文件中调用 Python 函数。

有一个方便的库可以做到这一点,我必须import Python迅速使用适当的功能。这是在 mac 上成功构建的,但在 Linux(Ubuntu 16.04)上,当我尝试构建时出现错误:

错误:没有这样的模块'Python'导入Python

我正在使用在虚拟机上运行的 Ubuntu 进行测试(使用来自 mac 主机的 Virtual Box)。我正在构建的可执行文件旨在在服务器上运行。

Python 2.7 在所有机器上运行。