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

时间:2016-11-17 01:47:04

标签: 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这个问题,但是我无法看到是否有任何工作要做。想知道是否有人试图以其他方式解决这个问题。

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

1 个答案:

答案 0 :(得分:-1)

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

#ifdef foo
#undef foo
#endif
#define foo bar

当然,你要用Pod B的标题取代Pod_B.h,& foobar与宏和&无论你想要什么来定义它们。

修改

显然,这不起作用,但你可能能够将Pod A构建为Pod B的子项目,这将使用户与其隔离,&仍然允许其他项目以与Pod B不兼容的方式使用Pod A.