从Podfile为cocoapod指定GCC_PREPROCESSOR_DEFINITIONS

时间:2013-08-29 06:22:07

标签: ios objective-c xcode cocoapods

我正在使用MTDates库在我的应用中进行日期计算。当然,它作为cocoapod添加到我的项目中。

MTDates将mt_startOfCurrentHour等方法添加到NSDate。但它也可以选择使用没有mt_前缀的方法名称。只需startOfCurrentHour。为了启用它,我们需要定义预处理器macross MTDATES_NO_PREFIX=1

在podscpec文件中,可以通过以下方式实现:

s.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'MTDATES_NO_PREFIX=1' }

但在the released podscpec中没有这样的界限。因此,默认情况下不启用简短的方法名称。

我想使用简短的方法名称并将MTDates作为cocoapod添加到我的项目中。

目前我已将podspec复制到项目仓库,添加该行并指向Podfile中的自定义podspec:

pod 'MTDates', :podspec => 'config/MTDates.podspec'

如何在不完全覆盖podspec的情况下为Podfile中的pod指定预处理器宏?

提前致谢!

2 个答案:

答案 0 :(得分:9)

您可以使用Podfile的post_install hook在安装后修改Pods.xcodeproj来执行此操作。该示例基本上向您展示了您需要知道的所有内容。

答案 1 :(得分:2)

我会在README中为那些好奇的人链接到这个,但我对这个问题的回答是强烈建议使用前缀。第三方库真的需要在其类别方法中添加前缀,尤其是在通过cocoapods等方式向公众发布时......或者没有其他可接受的方法。

我希望有一天能够从MTDates中抽出非前缀的方法,所以只需考虑它:)