如何通过Swift包管理器分发用于Swift库的iOS演示应用程序?

8

我的 Swift 库FlexColorPicker 刚刚添加了 Swift Package Manager 支持。通过在 Xcode 中执行 文件 → Swift Packages → 添加包依赖... → 选择目标 → 输入 https://github.com/RastislavMirek/FlexColorPicker → 确认即可将库本身添加到任何项目中。然而,用这种方式安装后,附带的演示无法运行。

我想在 Package.swift 中添加另一个(可能是可执行)产品FlexColorPickerDemo,供用户选择包含(或不包含),然后在其项目内运行,以查看他们如何使用该库。除了向Package.swift文件添加新的产品和目标之外,我可能还需要添加main.swift,对吧?它应该是什么样子,才能允许已通过 SPM 安装的演示作为 iOS 应用程序运行呢?

非常感谢任何帮助,甚至是教程链接,我真的不知道该怎么搜索...


现在这是可能的,我在这个答案中描述了文件夹层次结构和命令行:https://dev59.com/ob7pa4cB1Zd3GeqPrhgJ#65256621 - itMaxence
1个回答

1
你希望一个完整的演示项目能够“包含”在 Package.swift 文件中吗?
这是不可能的,与 SwiftPM 尚不能使用捆绑资源的原因相同:如何在 Swift Package Manager 库中包含资产/资源? 我认为最好的方法是更新您的 README 文件,并解释用户如何测试库,就像您已经在做的那样。

1
我不明白这两个问题有什么关联... 我的演示项目没有捆绑资源/资产。那么为什么它应该特别不可能呢? - Rasto
1
因为Package.swift只允许包含Swift或Obj-C文件。 所以其他所有东西(资源、Xcodeproj、plist)都不能包含在内。 因此,这两个问题是相关的。 虽然SwiftPM最终处理bundles的可能性比创建演示项目(类似于“pod try”)更大。 SwiftPM被创建用于处理依赖关系,而不是整个项目。 - basvk
我明白了。但是运行演示确实需要 xcodeproj 和 plist 吗?也许可以通过从 main.swift 开始循环,并以 storyboard 作为起点来替换它们。但不确定这种方式是否可以在模拟器中运行... - Rasto
你不能在代码库中创建一个演示目录,里面包含示例项目吗?或者将你的 Swift 包作为本地依赖项使用?我认为这个想法没有任何缺点。 - Mateusz
既然我们可以包含资源,那么在Swift Package Manager包中构建一个示例应用程序是否可能? - Austin
请查看此处:https://dev59.com/tVIH5IYBdhLWcg3wZtQs#67580251 - Sardorbek Ruzmatov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接