4

InstrumentsにUIAutomationスクリプトを実行させ、シミュレータで実行されているデバッガでiPhoneアプリケーションを開始する方法に関するドキュメントを誰か教えてもらえますか?

制約: 私はテストする iPhone 3g ハードウェアしか持っておらず、UIAutomation を使用したデバイスに対するデバッグは確実に機能しません。通常、テスト スクリプトはすべてがパスすることを確認するために実行されますが、UIAutomation スクリプトが実行されたときにのみトリガーされる奇妙なバグが存在します (これは良いことです)。バグは手動操作では再現できません。とにかく、シミュレーターで既に実行されているプロセスに Instruments UIAutomation をアタッチする方法はないようです。選択はありません。Instruments UIAutomation を直接起動しても、デバッガで起動しません。

これを実現するために、Instruments編集アクティブターゲット(環境変数、引数、作業ディレクトリ)で構成できるコマンドラインマジックがあると思いますが、魔法の段落が見つかりませんでした。

ありがとう、ニール

4

1 に答える 1

4

これにはしばらくの間、私も困惑しました。特に、Automation Instrument が選択されていると、Instruments アプリケーションが明示的にCurrent instrumentation disallows attach. 重要なのは、シミュレーターで実行されているアプリがホスト システムで独自のプロセスとして表示されることを認識することです。これにより、GDB から直接アタッチすることがうまく機能します。これらの手順は、Snow Leopard 10.6.8 上の XCode 4.2 (4C199) 用です。

  1. Instruments で通常どおりにテストを開始します (Instruments から直接、または Xcode 4 のProduct -> Profile.

  2. Xcode に戻ると、 menu の下にProduct -> Attach to Process、ホスト コンピューター上の他のすべてのアプリケーションと共に、名前別にリストされた iOS アプリが表示されます。実際、セクションヘッダーの下で最初にリストされる可能性が非常に高いLikely Targetsです。

  3. View -> Debug Area -> Show Debug Area表示されていない場合は、gdb コンソールが表示されるように選択します。

  4. Product -> Debug -> Pauseプログラムを中断するには、一時停止ボタン ( ) を押します。いつものように、ブレークポイントを設定し、検査します。

次の質問はNSLog()、デバッガ コンソールに通常の出力が表示されないのはなぜですか? アプリはすでにコンソール出力ストリームにバインドされているため、その出力を探す最も簡単な場所は、OS X コンソール アプリ ( /Applications/Utilities/Console.app) で、 の下を調べますDATABASE SEARCHES -> All Messages

于 2012-01-22T21:45:12.313 に答える