如何从 OS X 命令行工具使用 Swift 框架或库

How to consume a Swift framework or library from OS X Command Line Tool

我正在 Swift 做一个项目,我有一大块逻辑想放在 framework/library 中,这样我就可以轻松地测试它,使用它OS X 命令行工具,并最终在 OS X GUI 应用程序中使用它。

我正在使用 Xcode 7.2/Swift 2.1

除非最近发生了变化,否则您无法创建包含 Swift 的静态库,因此动态框架是唯一的选择。问题是 OS X 命令行工具模板没有 CLI 目标的常规选项卡,因此正常的 link/embed 框架工作流程不起作用。我该如何使用这个框架?

我终于找到了 a blog,其中列出了具体的操作方法。缺点是生成的构建产品是一个捆绑包(如果您将捆绑包替换为 GUI 应用程序,说明也有效),命令行工具的可执行文件位于 bundle/app 的 Contents/MacOS 文件夹中。因此,用户不能只调用 ./BundleName.bundle./AppName.app 并使用命令行工具 运行,他们必须执行 ./BundleName.bundle/Contents/MacOS/CommandLineTool.

我对实际使用捆绑包犹豫不决,因为我觉得大多数人都不会理解如何使用它,而且因为嵌入到 GUI 应用程序中需要付出同样的努力,这是我倾向于采用的方法。目前我不会向应用程序添加任何功能,但我至少可以添加一个标签来显示命令行工具的使用说明。

我发现的唯一其他选择是使框架正常运行,但同时设置所有框架 Swift 文件的目标成员身份,以将它们也包含在命令行工具的目标中。这将使命令行工具拥有工作所需的所有文件,并防止任何 bundle/app 嵌套。这更接近我最初的理想结果。