【问题标题】:Specifying GCC_PREPROCESSOR_DEFINITIONS for a cocoapod from Podfile为 Podfile 中的 cocoapod 指定 GCC_PREPROCESSOR_DEFINITIONS
【发布时间】:2013-08-29 06:22:06
【问题描述】:

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

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

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

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

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

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

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

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

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

提前致谢!

【问题讨论】:

    标签: ios objective-c xcode cocoapods


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

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

    我希望有一天能够从 MTDates 中删除不带前缀的方法,所以请考虑一下 :)

    【讨论】:

    • 在自述文件中添加一些关于此的信息对我来说听起来很不错! :) 它绝对应该对其他开发者有用。
    猜你喜欢
    • 2014-08-02
    • 1970-01-01
    • 2019-02-02
    • 2019-12-18
    • 2020-12-12
    • 2015-08-18
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多