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

时间:2016-01-28 22:28:43

标签: swift macos command-line frameworks

我正在研究Swift中的一个项目,我有一大堆逻辑,我想把它放在框架/库中,以便我可以轻松地测试它,在OS X命令行工具中使用它,以及最终在OS X GUI应用程序中使用它。

我正在使用Xcode 7.2 / Swift 2.1

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

1 个答案:

答案 0 :(得分:1)

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

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

我发现的唯一其他选项是使框架像普通一样,但也设置所有框架的Swift文件的目标成员资格,也将它们包含在命令行工具的目标中。这将使命令行工具具有所需的所有文件,并防止任何捆绑/应用程序嵌套。这更接近我原来的理想结果。