首页 > 解决方案 > 多平台 cocoapods 库配置

问题描述

我有一组适用于 iOS、MacOS、WatchOS 和 TvOS 的片段,我想将它们嵌入到 Cocoapod 库中(可能也支持 Carthage)。

对我来说棘手的部分是我有所有平台(iOS、MacOS TvOS 等)的目标,但有些文件只针对其中的一个子集。

在我的 Xcode 项目中,我将代码分为以下文件夹:

这是因为,例如,库的 iOS 部分可能需要UIKit并且MacOS可能需要其他不适用于 iOS 的框架。

如何设置 podspec 以使该库可以嵌入到所有平台中?

有没有办法做到这一点,或者更好地将它拆分到不同的库中?这种方法的问题是Library_Common每个部分都会重复。

标签: iosmacoscocoapodstvoswatchos

解决方案


我终于找到了我正在寻找的东西,并且似乎在podspec文档本身中指定了。不幸的是我之前没有看到它:

https://guides.cocoapods.org/syntax/podspec.html#group_multi_platform_support

这意味着,就我而言,我有以下设置:

s.source_files  = "MyLibrary_common/**/*.{h,m}"
s.ios.source_files = "MyLibrary_iOS/**/*.{h,m}"
s.osx.source_files = "MyLibrary_macOS/**/*.{h,m}"
s.tvos.source_files = "MyLibrary_tvOS/**/*.{h,m}"
s.watchos.source_files = "MyLibrary_watchOS/**/*.{h,m}"

推荐阅读