すべてのNSLog出力をリダイレクトして、アプリ内のUITextViewですべてのログを表示できるようにしようとしています(デバッグ目的で、後でTestFlightを使用してすべてをログに記録するため)。所有していないフレームワークからログを取得したいので、よく知られているDLogを使用できません。
これを行うには、stderrをパイプに「リダイレクト」し、このパイプから読み取ります。とにかく、これは、アプリがXcode内から起動されたときに、シミュレーターとデバイスでうまく機能します。ただし、アプリがデバイスで「手動」で起動された場合、これは機能しません。
NSLog呼び出しはデバイスに影響を与えないようです。パイプから何も読み取っていません。ただし、手動でstderrに書き込む場合:fprintf(stderr, "test")
パイプから読み取ることができるため、問題はstderrではなく、NSLog関数にあります。
なぜデバイスで何もしないのですか?デバイス上でもstderrに書き込む方法はありますか?
デバイスでNSLogを使用できない場合、外部フレームワークからログを収集する別の方法はありますか?
ありがとうございました。