web-dev-qa-db-ja.com

Cocoapods:MagicalRecordログオフをオフにする

MagicalRecordのログをオフにするには、プロジェクトに最初に含める前に#defineを作成する必要がありますが、Cocoapodsが管理するプロジェクトの場合、Podsプロジェクトに#defineを追加することはできません。このシナリオでログを完全にオフにするにはどうすればよいですか?

それを行う方法を見つけるのに数時間かかりました。他の人の役に立つことを願ってここに投稿しました。

編集:ログをオフにすることについて説明しているので、これは重複ではありませんCocoapodsの下で

39
Andres Kievsky

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

これにより、debug構成でのロギングのみが無効になることに注意してください。release構成では、ログはデフォルトで無効になっています。

79
Andres Kievsky

私の場合、MagicalRecordに依存するライブラリを構築していました。ノイズの多いログを消すために、ユーザーがPodfileにpost_installを追加する必要がないようにしたかったので、代わりにそれをpodspecに追加しました。

  s.prefix_header_contents = '#define MR_ENABLE_ACTIVE_RECORD_LOGGING 0'

これにより、これが自動的に追加されます#define Pods-prefix.pchへのステートメント。これにより、ポッドを使用するプロジェクトへのMagicalRecordのログインが停止されます。

13
Cody A. Ray

MagicalRecord2.3.0と一緒に新しいcocoapodsバージョンを使用している人のためにankの回答を更新しました。

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

変更点:

  • projectpods_projectに名前が変更されました
  • ターゲットPods-MagicalRecordの名前がMagicalRecordに変更されました
  • マクロMR_ENABLE_ACTIVE_RECORD_LOGGINGの名前がMR_LOGGING_DISABLEDに変更され、値が0から1に変更されました
5
Ivan Bruel

ポッドプロジェクトへのログインをオフに切り替えることができます!

プリプロセッサマクロを追加するだけです。

  1. 「ポッド」(!!!)プロジェクトに入るだけです。

  2. 次に、Pods-MagicalRecordターゲットを見つけます。

  3. 「ビルド設定」タブを選択します

  4. 「AppleLLVM6.1前処理」->「プロセッサマクロ」を検索します

  5. 「プロセッサマクロ」をロールアウトし、「デバッグ」スキーマに追加します:「MR_ENABLE_ACTIVE_RECORD_LOGGING = 0」

それがすべてです!

1
user3060339

Magical Recordロギングの開発ブランチ(バージョン2.3.0以降)では、まだ正しく機能していないようです。このようにインポートした場合:pod'MagicalRecord '、:git =>' https://github.com/magicalpanda/MagicalRecord '、: branch =>' develop '

Xcodeコンソールにログ出力がありません。しかし、Cocoapodのpost_installスクリプトを変更しました。以下はロギングを有効にする必要があります: https://Gist.github.com/Blackjacx/e5f3d62d611ce435775e

GCC_PREPROCESSOR_DEFINITIONSに含まれているビルド設定を使用すると、[MagicalRecord setLoggingLevel:]を使用して、2.3.0 ++でMagicalRecordのロギングを制御できます。

0
blackjacx