2

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

MTDates 添加了类似mt_startOfCurrentHourto 的方法NSDate。但它也可以选择使用不带mt_前缀的方法名称。只是startOfCurrentHour。为了启用它,我们需要定义一个预处理器宏MTDATES_NO_PREFIX=1

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

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

但是在发布的 podscpec中没有这样的行。因此默认情况下不启用短方法名称。

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

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

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

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

提前致谢!

4

2 回答 2

9

您可以通过使用 Podfile 的post_install挂钩来修改Pods.xcodeproj安装后的内容来做到这一点。该示例基本上向您展示了您需要知道的所有内容。

于 2013-08-29T09:18:10.790 回答
2

I will link to this in the README for those who are curious, but my answer to this question is to strongly suggest using the prefix. Third party libraries really need to add a prefix to their category methods, especially when distributing to the public via something like cocoapods or…there is no other acceptable way.

I hope to one day be able to yank the non-prefixed methods out of MTDates so just consider it :)

于 2013-08-29T12:54:41.113 回答