2

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

包含的示例“HAP-server”在命令行中运行良好,我使用参数“swift package generate-xcodeproj”创建了一个 XCODE 项目。

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

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

这允许我将 HAP “导入”到我的视图控制器类中。 在此处输入图像描述

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

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

在此处输入图像描述 在此处输入图像描述

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

我认为它与搜索标题有关...有人知道吗?

更新#1:

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

在此处输入图像描述

更新#2:

在此处输入图像描述

更新#3

我最终通过使用这种方法解决了这个问题:Importing CommonCrypto in a Swift framework

我需要为它正在抛出的每个项目创建一个模块映射,在我的例子中:CCURL 和 CHTTPParser。一旦我这样做了,我就可以编译了。

4

1 回答 1

1

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

据我记得,您需要将带有 curl 标头的目录添加到Header Search Paths,带有libcurl.ato的目录Library Search Paths,并将-lz标志添加到Other Linker Flags.

于 2017-11-08T05:29:38.450 回答