7

GoogleConversionPlugin は、役に立たない情報のランダムなビットをログに記録し、自動テスト レポートを台無しにすることを主張します。

4

2 に答える 2

3

NSLog()すべての出力をどこにも (またはコンソール ログ以外のファイルに)リダイレクトするか、独自のログ出力関数を呼び出すようにすることができます (公式ではありませんが、機能します)。ただし、これNSLog()は、この Google からの呼び出しだけでなく、すべての呼び出しに作用しますプラグイン、コード内からの呼び出しでも。アプリがシングル スレッドの場合、独自のログ関数を使用して、BOOLログが現在有効か無効かをグローバルにチェックする方法が得られる場合があります。ただし、マルチスレッド環境では、スレッドごとにそれを制御する必要があります (また、GCD を使用すると、スレッドを自分で処理しなくてもマルチスレッドになります)、これも可能ですが、コードが少し余分に増えます。 .

問題は、ロギングをグローバルに (または現在のスレッドに対して) 無効にし、プラグイン呼び出しを行ってから再度有効にすることは解決策として役立つでしょうか? もちろん、プラグインが内部でマルチスレッド化されている場合 (気付かないうちにスレッ​​ドが切り替わる可能性があります)、スレッドごとの無効化は機能しませんが、その場合でもグローバル スイッチは機能します。

静的ライブラリの呼び出しだけを制御するNSLog()ことは、このライブラリに "パッチ" を適用する意思がない限り不可能です (もちろん、Google から訴えられることなくパッチを適用することは許可されています)。動的ライブラリであれば可能ですが、iOS 向けに開発する場合、動的ライブラリを使用することはできません。

したがって、これらの可能な解決策のどれがあなたのニーズに合っているかをお知らせください。私ができることを確認します (たとえば、回答を更新し、コードまたは手順を追加します)。

于 2013-01-28T14:56:34.357 に答える