Siesta 作为 SwiftPM 在 Linux 上的依赖项

Posted

技术标签:

【中文标题】Siesta 作为 SwiftPM 在 Linux 上的依赖项【英文标题】:Siesta as dependency in SwiftPM on linux 【发布时间】:2017-12-28 21:19:16 【问题描述】:

我编写了一个使用 Siesta 的包,我希望能够使用 SwiftPM 在 linux 平台上为它运行自动化测试。我看到 siesta 有一个 Package.swift 声明排除了 SiestaUI,但是我看到标准转换器的 AppKit/UIKit 导入 -> Image 类型被广泛使用,并且 UIImage 引用无法在 linux 上编译。

此外,我特别希望我的消费库能够处理来自 Siesta 的图像。至少,我需要从消费者那里注入能够使用 Siesta 类型的 UIKit 方法。

那么,(1) 是否有任何期望 Siesta 可以在 linux 上与 SwiftPM 一起使用?如果是这样,这里的预期流程是什么?似乎 PureSwift/Cacao 和 Silica 可以帮助我解决这个问题,但我的实验并没有以某种方式正确连接,并且不同域类型之间的转换并不明显(即,我想使用 Siesta传输图像的 jpeg,但 Cacao 不提供 UIImageJPEGRepresentation 的实现。

有什么想法吗?

【问题讨论】:

【参考方案1】:

由于需求不足且没有明确的用例(直到现在!),Linux 上的 Siesta 目前还没有正式不受支持。 Package.swift 是有抱负的,寄希望于像你这样有进取心的人愿意接受它并让它发挥作用!

核心Siesta 模块理论上应该可以在Linux 上正常工作。 SiestaUI 模块仅适用于 ios/macOS,这就是 SwiftPM 清单将其排除在外的原因。

Siesta 自己的测试不适用于 SwiftPM,因为最后检查,它们所依赖的测试库不支持 SwiftPM。

【讨论】:

感谢保罗提供的信息。如果有任何有趣的事情发生,我将继续我的实验并与 PR 报告! 请发给他们。我很想找人来做这份工作。

以上是关于Siesta 作为 SwiftPM 在 Linux 上的依赖项的主要内容,如果未能解决你的问题,请参考以下文章

Siesta 加载在陈旧资源上失败

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

无法在 SwiftPM 的 ObjC 模块中导入 AppKit

Swift Siesta - 如何将异步代码包含到请求链中?

如何在带有 SwiftPM 的 Objective-C 模块中使用 Swift 模块?

从 Siesta 响应中获取 HTTPURLResponse