Xcode和SPM库

6

我希望使用Swift Package Manager编写我的项目。据我所知,唯一能够获得代码补全的方法是通过Xcode。其他所有尝试在Vim中获取代码补全的方式都失败了。

我的Swift包设置:

$ mkdir SwiftProject
$ cd SwiftProject

$ swift package init --type executable

这个步骤会生成标准的包结构,其中包括 Package.swift、包含 main.swift 等文件的源文件夹等。
$ swift package generate-xcodeproj

最后一步会生成包含所有设置用于在Xcode中构建swift包的SwiftProject.xcodeproj
到目前为止,一切都很顺利,直到通过Package.swift添加依赖项。
我的当前Package.swift:
import PackageDescription

let package = Package(
    name: "SwiftProject",
    dependencies: [
        .Package(url: "https://github.com/czechboy0/Socks.git", majorVersion: 0, minor: 7)
    ]
)

现在当我在我的main.swiftimport SocksCore并使用它时,通过CLI swift build编译很好,并且可以运行。但是我的Xcode项目无法编译,因为它找不到SocksCore模块。我认为我需要导入.dylib文件,这样Xcode就可以构建项目。
现在我的问题是:如何使用SPM生成这些动态库?我找不到方法来做到这一点。关于使用SPM和Xcode的每个教程都有这个.dylib或静态库.a,但是这些教程是使用比我的旧的开发快照版本构建的。我使用的是DEVELOPMENT-SNAPSHOT-2016-06-06-a。我找不到使用我的快照构建它们的方法。这不再可能吗?还是我在这一点上做错了什么?
还是有其他方法可以使用SPM和Xcode?如果我能找到一个解决方案来启动我的项目,那就太好了。
2个回答

4

每当您更改软件包的结构时,目前需要手动重新生成Xcode项目。这包括添加新依赖项,但也包括每次添加新源文件。


1
哦,太好了,现在它像魔法一样运行。非常感谢! - Dennis Hübner

1
只是为了澄清/简化Daniel的Dunbar的回答,在每个

之后
swift package update 

您需要再次生成xcodeproj文件:

swift package generate-xcodeproj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接