ios - Cocoapods: désactiver la journalisation de MagicalRecord




objective-c xcode (4)

Dans mon cas, je construisais une bibliothèque qui dépendait de MagicalRecord. Je ne voulais pas que mes utilisateurs aient à ajouter un post_install dans leur podfile pour mettre fin à la journalisation bruyante. Je l'ai donc ajouté à mon podspec.

  s.prefix_header_contents = '#define MR_ENABLE_ACTIVE_RECORD_LOGGING 0'

Ceci ajoute automatiquement cette instruction #define à Pods-prefix.pch, qui met la journalisation MagicalRecord en sourdine dans les projets qui utilisent mon pod.

Pour désactiver la journalisation de MagicalRecord, vous devez définir une #define avant de l'inclure dans le projet, mais dans le cas d'un projet géré par Cocoapods, je n'ai pas accès à une #define dans le projet Pods. Comment désactiver complètement la journalisation dans ce scénario?

Il m'a fallu quelques heures pour trouver un moyen de le faire, en postant ici dans l'espoir que cela aidera les autres.

EDIT: il ne s’agit pas d’un doublon car il est question d’arrêter de se déconnecter sous Cocoapods


J'ai mis à jour la réponse de ank pour ceux qui utilisent la nouvelle version de cocoapods aux côtés de 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

Changements:

  • project renommé en pods_project
  • Target Pods-MagicalRecord renommé en MagicalRecord
  • Macro MR_ENABLE_ACTIVE_RECORD_LOGGING renommé en MR_LOGGING_DISABLED et la valeur est passée de 0 à 1

Vous pouvez désactiver la connexion au projet Pod!

Ajoutez simplement des macros de préprocesseur:

  1. Il suffit d'aller dans le projet "Pods" (!!!).

  2. Recherchez ensuite la cible Pods-MagicalRecord.

  3. Choisissez l'onglet "Paramètres de construction"

  4. Trouver "Pré-traitement Apple LLVM 6.1" -> "Macros de processeur"

  5. Déployez les "macros de processeur" et ajoutez-les au schéma "débogage": "MR_ENABLE_ACTIVE_RECORD_LOGGING = 0"

C'est tout!


Vous pouvez utiliser un hook post_install pour modifier pratiquement tous les paramètres de construction. Ajoutez simplement ce code à votre fichier 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

Notez que cela ne désactivera que la journalisation dans la configuration de débogage - la journalisation est désactivée par défaut dans la configuration de la version .





cocoapods