Cocoapods: turning MagicalRecord logging off

前端 未结 5 1174
傲寒
傲寒 2020-12-23 09:39

Turning MagicalRecord logging off requires a #define to be made before it is first included in the project, but in the case of a project managed by Cocoapods I have no acces

相关标签:
5条回答
  • 2020-12-23 10:11

    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:]

    0 讨论(0)
  • 2020-12-23 10:16

    I updated ank's answer for those using the new cocoapods version alongside 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
    

    Changes:

    • project renamed to pods_project
    • Target Pods-MagicalRecord renamed to MagicalRecord
    • Macro MR_ENABLE_ACTIVE_RECORD_LOGGING renamed to MR_LOGGING_DISABLED and value changed from 0 to 1
    0 讨论(0)
  • 2020-12-23 10:17

    In my case, I was building a library that depended on MagicalRecord. I didn't want my users to have to add a post_install in their Podfile to silence the noisy logging, so I added it to my podspec instead.

      s.prefix_header_contents = '#define MR_ENABLE_ACTIVE_RECORD_LOGGING 0'
    

    This automatically adds this #define statement to Pods-prefix.pch, which silences MagicalRecord logging in projects that use my pod.

    0 讨论(0)
  • 2020-12-23 10:29

    You can use a post_install hook to modify pretty much any build setting. Just add this code to your 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
    

    Note that this will only disable logging in the debug configuration - logging is disabled by default in the release configuration.

    0 讨论(0)
  • 2020-12-23 10:31

    You can switch off logging in Pod project!

    Simply add Preprocessor Macros:

    1. Just go into "Pods" (!!!) project.

    2. Then find out Pods-MagicalRecord target.

    3. Choose "Build Settings" tab

    4. Find "Apple LLVM 6.1 Preprocessing" -> "Processor Macros"

    5. Rollout "Processor Macros" and add to "Debug" schema: "MR_ENABLE_ACTIVE_RECORD_LOGGING=0"

    It`s all!

    0 讨论(0)
提交回复
热议问题