pods mac instalar danielgindi beautiful ios objective-c xcode magicalrecord cocoapods

ios - mac - Cocoapods: desactivando el registro de MagicalRecord



pod init (5)

Desactivar el cierre de MagicalRecord requiere que se realice #define antes de que se incluya por primera vez en el proyecto, pero en el caso de un proyecto administrado por Cocoapods no tengo acceso para agregar un #define en el proyecto de Pods. ¿Cómo desactivo completamente el inicio de sesión en este escenario?

Me llevó unas horas encontrar la forma de hacerlo, publicar aquí con la esperanza de que ayude a los demás.

EDITAR: esto no es un duplicado, ya que analiza el cierre de sesión en Cocoapods


¡Puedes desactivar el registro en el proyecto Pod!

Simplemente agregue las Macros de preprocesador:

  1. Solo ingrese al proyecto "Pods" (!!!).

  2. Luego descubre el objetivo Pods-MagicalRecord.

  3. Elija la pestaña "Configuraciones de compilación"

  4. Buscar "Preprocesamiento de Apple LLVM 6.1" -> "Macros de procesador"

  5. Despliegue "Macros de procesador" y agréguelo al esquema "Depurar": "MR_ENABLE_ACTIVE_RECORD_LOGGING = 0"

¡Es todo!


Actualicé la respuesta de ank para aquellos que usan la nueva versión de cocoapods junto con 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

Cambios:

  • project renombrado a pods_project
  • Target Pods-MagicalRecord renombrado a MagicalRecord
  • Macro MR_ENABLE_ACTIVE_RECORD_LOGGING renombrada como MR_LOGGING_DISABLED y el valor cambiado de 0 a 1

En mi caso, estaba construyendo una biblioteca que dependía de MagicalRecord. No quería que mis usuarios tuvieran que agregar un post_install en su Podfile para silenciar el registro ruidoso, así que lo agregué a mi podspec.

s.prefix_header_contents = ''#define MR_ENABLE_ACTIVE_RECORD_LOGGING 0''

Esto agrega automáticamente esta declaración #define a Pods-prefix.pch, que silencia el registro de MagicalRecord en los proyectos que usan mi pod.


Para la rama de desarrollo (versión 2.3.0 y superior) del registro de registros mágicos parece que todavía no funciona correctamente. Cuando se importa de esta manera: pod ''MagicalRecord'',: git => '' https://github.com/magicalpanda/MagicalRecord '',: branch => ''develop''

No tengo salida de registro en mi consola Xcode. Pero alteré la secuencia de comandos post_install del Cocoapod. Lo siguiente debería permitir el registro: https://gist.github.com/Blackjacx/e5f3d62d611ce435775e

Con esa compilación incluida en GCC_PREPROCESSOR_DEFINITIONS, el registro de Magical Record se puede controlar en 2.3.0 ++ utilizando [MagicalRecord setLoggingLevel:]


Puede usar un enganche post_install para modificar prácticamente cualquier configuración de compilación. Simplemente agregue este código a su 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

Tenga en cuenta que esto solo deshabilitará el inicio de sesión en la configuración de depuración : el registro está deshabilitado de forma predeterminada en la configuración de lanzamiento .