将SwiftPM中的框架嵌入到Cocoa应用程序中(XCODE)

时间:2017-11-07 20:54:38

标签: swift xcode macos cocoa kitura

我正在使用一个名为“HAP”(https://github.com/Bouke/HAP)的项目,该项目是使用SwiftPM构建的。

包含的示例“HAP-server”在Command Line中运行良好,我使用params“swift package generate-xcodeproj”来创建XCODE项目。

我还可以在XCODE中加载HAP并构建/调试目标“HAP-server”。

我想在我的Cocoa应用程序中使用这个框架,并将HAP.xcodeproj添加到我的项目中。我将生成的文件添加为“嵌入式二进制文件”和“链接框架和库”。

这允许我将“导入HAP”导入到我的视图控制器类中。 enter image description here

然而,当我尝试构建我的Cocoa目标时,我得到以下消息 - 似乎与HAP项目中的依赖“Kitura-net”有关...

“缺少必需的模块:'CCurl','CHTTPParser'”

enter image description here enter image description here

在我的项目中使用SwiftPM框架的最佳方法是什么?

我认为它与搜索标题有关...有人有想法吗?

更新#1:

我已经尝试添加到我的Cocoa项目,该项目正在导入使用Kitura的库“Link Binary With Libraries”,来自usr / lib /的libcurl.4.dylib,但它仍然给我同样的错误。

enter image description here

更新#2:

enter image description here

更新#3

我最终使用这种方法搞清楚了:Importing CommonCrypto in a Swift framework

我需要为每个适合的项目创建一个模块图,在我的例子中:CCURL& CHTTPParser。一旦我这样做,我就可以编译。

1 个答案:

答案 0 :(得分:1)

您可以在此回购https://github.com/IBM-Swift/Kitura-HelloWorld-iOS中看到在Kcode项目中嵌入Kitura的示例。此repo中的Makefile运行构建脚本来修复Xcode项目以在iOS上运行Kitura。您需要为iOS编译curl - 请参阅自述文件中的说明。

根据我的记忆,您需要将带有curl标头的目录添加到Header Search Paths,将libcurl.a添加到Library Search Paths的目录,并将-lz标志添加到{ {1}}。