cocoapods - 像在 SPM 中一样在 CocoaPods 中创建多个模块
问题描述
我的库由两个模块组成:
- Swift 中的库核心
- C 中的一个模块,其中包括 CHTMLSAXParser
这是结构
现在为了在 SPM 中编译它,我需要创建两个目标:
import PackageDescription
let package = Package(
name: "MyLib",
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "MyLib",
targets: ["MyLib"]),
],
dependencies: [],
targets: [
.target(
name: "CHTMLSAXParser",
dependencies: []),
.target(
name: "MyLib",
dependencies: ["CHTMLSAXParser"])
]
)
这非常简单:在 MyLib 中调用源 swift 文件import CHTMLSAXParser
,一切正常。
但是我不知道用 CocoaPods podspec 文件复制相同行为的正确方法是什么。
任何想法?
解决方案
我发现混合 Swift/ObjC 模块的限制不适用于 CocoaPods。所以为了解决问题:
- 我创建了一个包含 C 和 Swift 文件的 podspec 包
- 用于
#if canImport(CHTMLSAXParser)?
避免在不需要时(在 cocoapods 下)导入它,而不会产生编译器错误。
更多信息在这里
推荐阅读
- sql-server - 调查缓慢的 SQL 性能,反复看到不同的 CREATE PROCEDURE
- unity3d - 如何修复着色器上的法线
- javascript - 如何打印包含所有事件的给定日期范围的完整日历?
- python - nearest neighbour search 4D space python fast - vectorization
- arrays - 如何将 cmdlet 的输出添加到数组中?
- java - 我们如何为供应商创建一个实例,因为它是一个接口?
- google-cloud-platform - 使用服务帐户进行 Google Admin SDK 身份验证
- reactjs - 使用 axios 将 2 个不同的 api 连接到一个反应应用程序
- javascript - 仅使用单词从数组中删除项目
- docker - 如果挂载的文件已更改,如何强制 Ansible 重新创建 docker 容器