ios - 未为 CocoaPods 目标定义 DEBUG 预处理器宏

标签 ios objective-c xcode cocoapods

我遇到了一个名为 DCIntrospect-ARC 的 pod 的问题,它应该只能在 DEBUG 模式下工作。它在运行前检查是否定义了 DEBUG 宏。但是,它没有在 CocoaPods 目标中定义,即使我在 Xcode 中以 Debug模式运行,它也无法运行,因为没有定义 DEBUG 宏。

我可以在 podspec 中使用定义 DEBUG 宏

s.xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) DEBUG=1' }

但这为所有构建配置定义了 DEBUG,而不仅仅是 DEBUG 配置。

  1. 这是 CocoaPods 的问题吗?通常不应该为 Pod 定义 DEBUG 宏吗?
  2. 我能否在 Podspec 文件中解决此问题并仅在调试构建配置中声明 DEBUG 宏?

最佳答案

您可以在 Podfile 中使用 post_install Hook 。

此 Hook 允许您在将生成的 Xcode 项目写入磁盘之前对生成的 Xcode 项目进行任何最后更改,或者您可能想要执行的任何其他任务。 http://guides.cocoapods.org/syntax/podfile.html#post_install

post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            if config.name != 'Release'
                config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'DEBUG=1']
            end
        end
    end
end

关于ios - 未为 CocoaPods 目标定义 DEBUG 预处理器宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046282/

相关文章:

ios - 快速清空请求正文

iphone - 本地存储还是 SQLite?

java - 从另一个类调用 UIWebView 方法

ios - 执行 react-native run-ios 时出错

ios - 如何将 CLLCooperative2D 纬度/经度转换为 NSNumber

objective-c - 如何使用@selector调用带参数的方法

iphone - 添加或删除 View 时,NSViewController 会收到通知吗?

XCode 7/Cordova 插件/链接问题 : _utf8_nextCharSafeBody undefined symbol

iphone - Xcode/iPhone 开发 6 个月 - 烦恼

xcode - Swift Cloudkit 获取当前用户信息以供整个应用程序使用