【问题标题】:How to distribute iOS Demo app for Swift library via Swift Package Manager?如何通过 Swift Package Manager 为 Swift 库分发 iOS Demo 应用程序?
【发布时间】:2020-02-07 21:29:03
【问题描述】:

我的 Swift 库 FlexColorPicker 刚刚采用了 Swift 包管理器支持。可以通过 XCode 将库本身添加到任何项目中,方法是执行 File → Swift Packages → Add Package Dependency... → 选择目标 → 输入 https://github.com/RastislavMirek/FlexColorPicker → 确认。但是,该库附带了一个演示,以这种方式安装时无法运行。

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

任何帮助表示赞赏,甚至教程链接,我真的不知道谷歌什么...

【问题讨论】:

标签: ios swift xcode xcode11 swift-package-manager


【解决方案1】:

您希望将完整的演示项目“包含”在Package.swift 文件中?

这是不可能的,这与 SwiftPM (还)不能使用捆绑资源的原因相同:How to include assets / resources in a Swift Package Manager library?

恕我直言,最好的方法是更新您的 README 文件并解释用户如何测试库,就像您已经在做的那样。

【讨论】:

  • 我看不出这两个问题有什么关系...我的演示项目没有捆绑的资源/资产。那么具体应该是什么原因是不可能的呢?
  • 因为 Package.swift 只允许包含 swift 或 obj-c 文件。所以其他一切(资源、xcodeproj、plist)都不能。因此,这两个问题是相关的。虽然 SwiftPM 最终处理包的可能性比创建演示项目的能力更有可能(类似于 pod try),但创建 SwiftPM 是为了处理依赖关系,而不是整个项目。
  • 我明白了。但是我真的需要 xcodeproj 和 plist 来运行演示吗?也许可以通过以故事板为起点从main.swift 开始循环来替换它。但不确定它是否可以以这种方式在模拟器中运行...
  • 你不能在存储库中创建一个包含示例项目的 Demo 目录吗?也许将您的 Swift 包用作本地依赖项?我看不出这个想法有任何缺点。
  • 现在我们可以包含资源,是否可以在 Swift 包管理器包中构建示例应用程序?
猜你喜欢
  • 2017-02-08
  • 2018-09-21
  • 1970-01-01
  • 2023-02-10
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
相关资源
最近更新 更多