首页 > 解决方案 > 像在 SPM 中一样在 CocoaPods 中创建多个模块

问题描述

我的库由两个模块组成:

这是结构

在此处输入图像描述

现在为了在 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 文件复制相同行为的正确方法是什么。

任何想法?

标签: cocoapodspodspec

解决方案


我发现混合 Swift/ObjC 模块的限制不适用于 CocoaPods。所以为了解决问题:

  1. 我创建了一个包含 C 和 Swift 文件的 podspec 包
  2. 用于#if canImport(CHTMLSAXParser)?避免在不需要时(在 cocoapods 下)导入它,而不会产生编译器错误。

更多信息在这里


推荐阅读