2010-12-17 3 views
4

InstrumentをUIAutomationスクリプトを実行させ、Simulatorで実行されているデバッガでiPhoneアプリケーションを起動させる方法に関するドキュメントは誰でも教えてください。UIAutomation、Simulator、およびXcode Debuggerを同時に実行するには?

制約: 私はUIAutomationでテストしてデバッグするiPhone 3gハードウェアのみを信頼性高く動作させることはできません。 通常、テストスクリプトはすべてがパスするように実行されていますが、UIAutomationスクリプトが実行されたときにのみ起動される奇妙なバグが存在します(これは良いことです)。バグは手動操作では複製できません。 シミュレータ内ですでに実行されているプロセスにインストゥルメントUIAutomationを接続することは考えられません。選択肢はありません。 UIAutomationを直接起動しても、デバッガでは起動しません。

私はこれを実現するためにアクティブなターゲット(環境変数、引数、作業ディレクトリ)インスツルメンツ編集で設定することができますいくつかのコマンドラインの魔法があることを前提としていますが、私は魔法の段落を発見していませんでした。

おかげで、 ニール

答えて

4

は、これはあまりにも、しばらくの間、私を困惑 - 特にオートメーション機器が選択されているとき以来、楽器アプリケーションが明示的Current instrumentation disallows attachを言います。キーは、シミュレータで実行されているアプリケーションが独自のプロセスとしてホストシステムに表示されることを認識することです。そのため、GDBから直接接続するとうまく機能します。これらの命令はXCodeの4.2のためのものであるSnow Leopardの10.6.8上(4C199):

  1. は直接楽器から、またはXcodeの4のProduct -> Profileからいずれか(ただし、あなたが通常行うインスツルメンツでテストを開始します

    にどのようなテンプレートやスクリプトを選択します。

  2. Xcodeで、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下に見えます。

+0

これは素晴らしいです!このckhanありがとう! –

関連する問題