在Xcode中将Swift项目添加到Mac应用程序

时间:2018-01-19 15:26:40

标签: swift xcode macos

我有一个简单的基于Swift的Hello World项目 - 一个原生的Mac应用程序,它只有一个简单的“hello world”窗口 - 使用“Cocoa Application”模板在Xcode中构建。我想添加一个specific third-party Swift library

我是Xcode和Swift的新手,所以我错过了一些直截了当的东西,并且没有找到正确添加它的方法,以便我可以在应用程序中import PG进行构建:

使用swift包管理器

我可以使用swift build构建库。我可以使用swift package generate-xcodeproj为库生成Xcode项目。但我没有找到明确的说明,将库带入Xcode中的现有原生Mac应用程序(或使用swift build

例如,this tutorial from Twilio涵盖了将Swift项目构建为独立二进制文件,以及在Xcode中编辑Swift代码。但它不包括在本机mac应用程序中包含Swift库。其他教程同样关注独立的swift工具。

我尝试在应用根目录中创建Package.swift文件,指定依赖项,然后运行swift package resolveswift build。我从swift build获得“错误:无法找到目标:PG”:

import PackageDescription

let package = Package(
    name: "myapp",
    targets: [
        Target(
            name: "myapp",
            dependencies: ["PG"] // This must be incorrect 
        ),
    ],
    dependencies: [
    .Package(url: "https://github.com/davbeck/PG.swift.git", majorVersion: 0),
    ]
)

其他包经理

我知道如何使用CocoaPods添加框架,但是这个项目不适用于它。我尝试使用Carthage,但它没有构建我可以添加到项目中的框架。

只需添加文件

如果只是通过拖放文件来添加Swift源,当我尝试import PG时,我会得到一个“没有这样的模块PG”。这似乎也不是一个可持续的选择。将文件拖入Xcode时,我不得不选择“创建组”而不是默认的“创建文件夹引用”来让Xcode查看文件:

enter image description here

2 个答案:

答案 0 :(得分:5)

最简单的方法之一就是在Xcode项目中添加Sources目录中的原始源文件。这样你就不需要导入任何东西,但它也有许多缺点。这就是包裹经理存在的原因。

您链接的项目实际上支持Swift Package Manager安装。我建议你尝试而不是手动添加文件。使用它比Carthage或CocoaPods更复杂,但它确实值得。

它被认为是管理macOS项目依赖项的最佳方式。关于如何使用Swift Package Manager的详细信息,我建议a couple使用those tutorials。{/ p>

答案 1 :(得分:1)

我能感受到你的痛苦,因为我经历了一些类似的困境。我从未使用过CocoaPods或Carthage。但是,在开始工作之前,您确实需要确保使用Xcode的一些设置进行修改。我设法解决了我所描述的所有问题here