Xcode和SPM库

时间:2016-06-30 08:26:04

标签: xcode swift vim swift-package-manager

我想用Swift Package Manager编写我的项目代码。获得代码完成的唯一可能方法是通过Xcode AFAIK。在Vim中获得代码完成的所有其他尝试都失败了。

设置我的Swift包:

$ mkdir SwiftProject
$ cd SwiftProject

$ swift package init --type executable

此步骤使用Package.swift,包含main.swift的源文件夹等生成标准包结构。

$ swift package generate-xcodeproj

最后一步生成SwiftProject.xcodeproj,其中包含从Xcode构建swift包的所有设置。

到目前为止,一切都有效,直到通过Package.swift添加依赖项。

我当前的Package.swift

import PackageDescription

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

现在当我import SocksCore main.swift并使用它时,通过CLI swift build进行编译工作正常并运行。但我的Xcode-Project无法编译,因为它无法找到SocksCore模块。我想我需要导入.dylib - 文件,因此Xcode可以构建项目。

现在解决我的问题:如何使用SPM生成这些动态库?我找不到办法做到这一点。关于在Xcode中使用SPM的每个教程都有这个.dylib或静态库.a,但本教程是使用比我更早的开发快照版本构建的。我使用DEVELOPMENT-SNAPSHOT-2016-06-06-a构建。我找不到用快照构建它们的方法。这不可能了吗?或者我现在做错了什么?

或者是否有其他方式使用SPM和Xcode?如果我能找到解决方案来启动我的项目,那就太好了。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

只是为了澄清/简化Daniel的Dunbar答案, 每次

之后
swift package update 

u应该再次生成xcodeproj:

swift package generate-xcodeproj