【发布时间】:2019-08-16 16:03:50
【问题描述】:
我有一套适用于 iOS、MacOS、WatchOS 和 TvOS 的 sn-ps,我想将其嵌入到 Cocoapod 库中(可能也支持 Carthage)。
对我来说棘手的部分是我有针对所有平台(iOS、MacOS TvOS 等)的目标,但一些文件仅针对其中的一个子集。 p>
在我的 Xcode 项目中,我将代码分为以下文件夹:
-
Library_Common(目标全部) -
Library_iOS(目标 iOS) -
Library_WatchOS(目标 WatchOS) -
Library_MacOS(目标 MacOS)
这是因为,例如,库的 iOS 部分可能需要 UIKit,而 MacOS 可能需要其他不适用于 iOS 的框架。
如何设置 podspec 以使该库可以嵌入所有平台?
有没有办法做到这一点,或者将它拆分到不同的库中更好?这种方法的问题是Library_Common 部分会为每个部分重复。
【问题讨论】:
-
问题不在于安装,而在于生成库本身。 :)
-
是的,最好将其拆分为通用和基于平台的更改。这样,即使对于拥有多个平台的最终用户,也将拥有一个 Common 副本。如果要发布封闭源代码框架,则必须使用 vendored_frameworks。如果它是开源的,您可以定义子规范。
标签: ios macos cocoapods tvos watchos