【问题标题】:Adding a Swift project to a Mac app in Xcode在 Xcode 中将 Swift 项目添加到 Mac 应用程序
【发布时间】:2018-06-28 21:19:57
【问题描述】:

我有一个简单的基于 Swift 的 Hello World 项目——一个只有一个简单的“hello world”窗口的本地 Mac 应用程序——使用“Cocoa 应用程序”模板在 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 看到文件:

【问题讨论】:

    标签: swift xcode macos


    【解决方案1】:

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

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

    它被认为是管理 macOS 项目依赖项的最佳方式。关于如何使用 Swift 包管理器的细节,我建议 a couplethose 有用的 tutorials

    【讨论】:

    • 谢谢谢尔盖!我遇到过这些教程,但它们并没有真正解决这个问题。也许更直接的问题是:我如何具体地使用 Swift 包管理器将库添加到现有 Xcode 项目中?我已经澄清了这个问题以及我在上面所做的尝试。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 2021-08-24
      相关资源
      最近更新 更多