Cocoapods:将MagicalRecord注销

打开MagicalRecord注销需要一个#define之前,它是第一次被包括在项目中,但在由Cocoapodspipe理的项目的情况下,我无法在Pods项目中添加#define。 在这种情况下,如何完全closures注销?

花了我几个小时想办法做到这一点,在这里张贴,希望能帮助别人。

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

您可以使用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 

请注意,这只会禁止在debuggingconfiguration中进行日志logging – 在发行版configuration中,默认情况下禁用日志logging。

就我而言,我正在build立一个依靠MagicalRecord的库。 我不希望我的用户不得不在他们的Podfile中添加一个post_install来消除噪音,所以我把它添加到了我的podspec中。

  s.prefix_header_contents = '#define MR_ENABLE_ACTIVE_RECORD_LOGGING 0' 

这会自动将此#define语句添加到Pods-prefix.pch中,这会使使用我的容器的项目中的MagicalRecordlogging无声。

我更新了对于使用新的cocoapods版本以及MagicalRecord 2.3.0的人的回答:

 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
  • Target Pods-MagicalRecord重命名为MagicalRecord
  • macrosMR_ENABLE_ACTIVE_RECORD_LOGGING更名为MR_LOGGING_DISABLED且值从0更改为1

您可以closuresPod项目中的日志logging!

只需添加预处理器macros:

  1. 只要进入“豆荚”(!!!)项目。

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

  3. select“构build设置”选项卡

  4. 查找“Apple LLVM 6.1预处理” – >“处理器macros”

  5. 展开“处理器macros”并添加到“debugging”模式:“MR_ENABLE_ACTIVE_RECORD_LOGGING = 0”

这一切!

魔法logging日志的开发分支(版本2.3.0和更高版本)似乎仍然不能正常工作。 当像这样导入:pod'MagicalRecord',:git =>' https://github.com/magicalpanda/MagicalRecord',:branch =>'develop'

我的Xcode控制台上没有日志输出。 但是我改变了Cocoapod的post_install脚本。 以下应该启用日志logging: https : //gist.github.com/Blackjacx/e5f3d62d611ce435775e

随着GCC_PREPROCESSOR_DEFINITIONS中包含的构build设置,Magical Record的logging可以通过使用[MagicalRecord setLoggingLevel:]在2.3.0 ++中进行控制