xcode - 为另一个 pod 添加预处理器宏

标签 xcode cocoapods

我正在创建一个 CocoaPod 框架(Pod B),它依赖于另一个 CocoaPod 框架(Pod A)。 Pod A 使用的一些行为和文件位置由预处理器宏控制。有没有办法可以从 Pod B 提供这些宏中的一些,这样 Pod B 的用户就不必知道或处理 Pod A 所需的设置?

我已经尝试在 XCode 中设置其中一些,但似乎构建 Pod A 并没有从 XCode 中获取这些设置中的任何一个。最好不要修改 Pod A 的 .xcconfig,除非它可以作为构建过程或 Pod B 安装的一部分自动化。

更新
CocoaPods 团队似乎有 talked about solving这个问题,但我看不到是否对此进行了任何工作。想知道是否有人试图以其他方式解决这个问题。

我真的更愿意避免使用 post_install 的标准机制。在 Podfile 中,因为这需要 Pod B 的用户进行更改,因此要注意这些设置。

最佳答案

您是否可以接受在 Pod B 的 header 中定义/重新定义宏?例如,如果 Pod A 定义了 foo , & 你希望它被定义为不同的东西,你可以添加如下内容到 Pod_B.h :

#ifdef foo
#undef foo
#endif
#define foo bar
当然,你会替换 Pod_B.h带有 Pod B 的标题,& foobar使用宏以及您想要定义它们的任何内容。
编辑
显然,这行不通,但您可以将 Pod A 构建为 Pod B 的子项目,这将使用户与其隔离,并且仍然允许其他项目以与 Pod B 不兼容的方式使用 Pod A。

关于xcode - 为另一个 pod 添加预处理器宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40645413/

相关文章:

iPhone/iPad 浏览器模拟器?

xcode - 如何在屏幕左侧和右侧创建 "wall"Swift Spritekit?

iOS - 将 UIMonthYearPicker 与 Interface Builder 结合使用

ruby - CocoaPods 在 macOS High Sierra 中不工作

ios - Interface Builder 在使用 Cocoapods 1.0 的框架项目上损坏

Xcode 是从 Internet 下载的应用程序。

ios - 将对象添加到单个 Realm 文件

swift - 无法将 cocoapod master repos 安装到 swift 项目中

ios7 - CocoaPodsarm64问题

ios - 为 iOS 实现 Google 登录时出现 Apple Mach-O 链接器错误