我正在使用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指定预处理器宏?
提前致谢!
答案 0 :(得分:9)
您可以使用Podfile的post_install
hook在安装后修改Pods.xcodeproj
来执行此操作。该示例基本上向您展示了您需要知道的所有内容。
答案 1 :(得分:2)
我会在README中为那些好奇的人链接到这个,但我对这个问题的回答是强烈建议使用前缀。第三方库真的需要在其类别方法中添加前缀,尤其是在通过cocoapods等方式向公众发布时......或者没有其他可接受的方法。
我希望有一天能够从MTDates中抽出非前缀的方法,所以只需考虑它:)