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
- macros
MR_ENABLE_ACTIVE_RECORD_LOGGING
更名为MR_LOGGING_DISABLED
且值从0
更改为1
您可以closuresPod项目中的日志logging!
只需添加预处理器macros:
-
只要进入“豆荚”(!!!)项目。
-
然后找出Pods-MagicalRecord目标。
-
select“构build设置”选项卡
-
查找“Apple LLVM 6.1预处理” – >“处理器macros”
-
展开“处理器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 ++中进行控制