39

关闭 MagicalRecord 注销需要在它首次包含在项目中之前进行#define,但对于由 Cocoapods 管理的项目,我无权在 Pods 项目中添加#define。在这种情况下,如何完全关闭注销?

我花了几个小时想办法做到这一点,在这里发帖希望它能帮助其他人。

编辑:这不是重复的,因为它讨论了在 Cocoapods 下关闭注销

4

5 回答 5

79

您可以使用 post_install 挂钩来修改几乎任何构建设置。只需将此代码添加到您的 Podfile 中:

post_install do |installer|
  target = installer.project.targets.find{|t| t.to_s == "Pods-MagicalRecord"}
    target.build_configurations.each do |config|
        s = config.build_settings['GCC_PREPROCESSOR_DEFINITIONS']
        s = [ '$(inherited)' ] if s == nil;
        s.push('MR_ENABLE_ACTIVE_RECORD_LOGGING=0') if config.to_s == "Debug";
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = s
    end
end

请注意,这只会在调试配置中禁用日志记录 - 默认情况下,在发布配置中禁用日志记录。

于 2013-03-07T23:41:42.093 回答
13

就我而言,我正在构建一个依赖于 MagicalRecord 的库。我不希望我的用户必须在他们的 Podfile 中添加 post_install 来消除嘈杂的日志记录,所以我将它添加到我的 podspec 中。

  s.prefix_header_contents = '#define MR_ENABLE_ACTIVE_RECORD_LOGGING 0'

这会自动将此#define语句添加到 Pods-prefix.pch,这会使使用我的 pod 的项目中的 MagicalRecord 日志记录静音。

于 2013-05-30T03:16:59.620 回答
5

我为那些使用新的 cocoapods 版本和 MagicalRecord 2.3.0 的人更新了 ank 的答案:

post_install do |installer|
  target = installer.pods_project.targets.find{|t| t.to_s == "MagicalRecord"}
  target.build_configurations.each do |config|
    s = config.build_settings['GCC_PREPROCESSOR_DEFINITIONS']
    s = [ '$(inherited)' ] if s == nil;
    s.push('MR_LOGGING_DISABLED=1') if config.to_s == "Debug";
    config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = s
  end
end

变化:

  • project重命名为pods_project
  • 目标Pods-MagicalRecord重命名为MagicalRecord
  • MR_ENABLE_ACTIVE_RECORD_LOGGING重命名为MR_LOGGING_DISABLED,值从更改01
于 2015-09-22T09:50:21.783 回答
1

您可以关闭 Pod 项目的登录功能!

只需添加预处理器宏:

  1. 只需进入“Pods”(!!!)项目。

  2. 然后找出 Pods-MagicalRecord 目标。

  3. 选择“构建设置”选项卡

  4. 找到“Apple LLVM 6.1 预处理”->“处理器宏”

  5. 推出“处理器宏”并添加到“调试”模式:“MR_ENABLE_ACTIVE_RECORD_LOGGING=0”

就是这样!

于 2015-05-21T07:00:52.260 回答
0

For the development branch (version 2.3.0 and higher) of Magical Record logging seems to still not work correctly. When imported like this: pod 'MagicalRecord', :git => 'https://github.com/magicalpanda/MagicalRecord', :branch => 'develop'

I have no logging output on my Xcode console. But I altered the post_install script of the Cocoapod. The following should enable logging: https://gist.github.com/Blackjacx/e5f3d62d611ce435775e

With that buildsetting included in GCC_PREPROCESSOR_DEFINITIONS logging of Magical Record can be controlled in 2.3.0++ by using [MagicalRecord setLoggingLevel:]

于 2014-09-17T12:46:04.650 回答