我有一个由Cocoapod
管理的Xcode工作区,它与外部库有一些依赖关系。其中一个MTDates扩展了NSDate
和NSDateComponents
,如果定义了某个预处理器宏,则使用前缀方法或非前缀方法(这正是我想要的)。
有几个地方我可以放置预处理器宏定义,以便编译后的库提供无前缀的方法,但是一旦我要求Cocoapod
更新项目,所有这些似乎都被重置了,这让我认为这些宏定义是由pod规范驱动的。这些包括:
- pod的目标构建设置
- Cocoapod的 Targets Support Files 中pod的私有
.xcconfig
文件
更改pod的规范需要管理我自己的库版本,因此当新版本出现时,cocoapods
无法更新它。所以我的问题是:有没有一种方法可以为cocoapod
依赖项指定一个预处理器宏,而不需要fork pod并更改pod的规范本身?
编辑:
有一个open issue关于这一点,这似乎是指日可待。
4条答案
按热度按时间g9icjywg1#
这个功能现在可用了。下面是一个例子,你可以在你的Podfile的底部添加一个基于特定配置的宏。
字符串
ryoqjall2#
正如你提到的'在Cocoapod的目标支持文件中的pod的私有.xcconfig文件',我这样做解决了我的问题。
字符串
m0rkklqb3#
看看Cocoapods文档,我认为这还不可能,我认为你可以做的是复制pod规范--做你想要的修改(例如
s.prefix_header_contents = #define symbolToDefine
),然后将其添加到您的本地规范中,并使用不同的名称,并在您的pod文件中使用。当新版本不幸出现时,你必须进去改变标签号(和其他东西取决于变化)。pgccezyw4#
Swift预处理器标志和podspecs更新:
字符串