2012-02-28 4 views
3

Xcodeでアプリケーションが停止するたびにiOSシミュレータを閉じる/終了することはできますか? XcodeやSimulatorで設定を見つけることができませんでした。開発プロセスがあればスピードアップするのに役立ちます。Xcodeでアプリケーションが停止しているときにiOSシミュレータを自動的に閉じる

+4

どのようにしてdevプロセスがスピードアップしますか?シミュレーターはすべての実行で再起動する必要がありますが、これによりプロセスが遅くなります...そうですか? – bschultz

+2

私も、これが開発プロセスを "スピードアップ"する方法を知りたいと思います。 – tallybear

+0

アプリケーションが手動で停止したときにシミュレータが終了した場合は、毎回自分自身で行う必要はありません。あなたは、アプリケーションが停止してもシミュレータを実行させたままにしておきますか? –

答えて

2

ビルドが停止しているとき、あなたは以下の

#!/bin/sh 
osascript -e 'tell app "iPhone Simulator" to quit' 

保存などの実行可能ファイルをコンパイルする必要があります。このファイルは、その後のXcodeの好みの振る舞いセクションを開き、実行中のセクションの追加を完了したシミュレータを殺すためにスクリプトファイルを実行セクションに追加します。 うまくいけば、これはあなたのために働くだろうが、この方法はちょっと変わったようだが、残念ながら私が思いついた最善の方法だ! 幸運を祈る! enter image description here

これは非常に簡単なので、OS Xアプリケーションを作成していないのは残念です。この部分は無関係ですが、誰でも知っている、あなたは将来それを使用することができるかもしれません!

- (IBAction)KillSim:(id)sender { 

    NSLog (@"Sim Kill Begin"); 


    NSDictionary* errorDict; 
    NSAppleEventDescriptor* returnDescriptor = NULL; 

    NSAppleScript* scriptObject = [[NSAppleScript alloc] initWithSource: 
            @"tell application \"iPhone Simulator\" to quit"]; 

    returnDescriptor = [scriptObject executeAndReturnError: &errorDict]; 
    [scriptObject release]; 

    if (returnDescriptor != NULL) 
     { 
      // successful execution 
     if (kAENullEvent != [returnDescriptor descriptorType]) 
      { 
       // script returned an AppleScript result 
      if (cAEList == [returnDescriptor descriptorType]) 
       { 
        // result is a list of other descriptors 
       } 
      else 
       { 
        // coerce the result to the appropriate ObjC type 
       } 
      } 
     } 
    else 
     { 
      // no script result, handle error here 
     } 

    NSLog (@"Sim Killed End"); 


} 
0

シミュレータを使用していて、終了するにはcmd + qを押すだけでシミュレータを終了し、Xcodeで自動的に停止します。

+1

iOSシミュレータが起動して実行中にcmd + qを押すと、シミュレータは終了しますが、プログラムがXcodeで実行されるのを止めることはありません。 –

+0

奇妙なことに、それは私のためです。 – Darren

+0

する必要があります。 Springboardにアプリの実行を停止するよう指示します – DGund

0

あなたはXcodeのからデバッグセッションを停止して再起動、あるいは単にXcodeのから再びCMD-Rを押すと、新しいバージョンがシミュレータで細かい実行されますすることができます。シミュレータを終了して再起動する必要はありません。

0

xCode 5.1でも同じ問題がありました。私のMacを再起動すると解決しました。

「なぜこれが開発をスピードアップするのですか?」私の場合、Xcodeはエミュレーターを出て終了するまで私を再び動かすことはできませんでした。

0

あなたはTemplateInfo.plistにこれを追加することで、(Xcodeプロジェクトテンプレートを使用して)新しいプロジェクトに 'スクリプト実行'ビルドフェーズを追加できます。

<key>Targets</key> 
<array> 
<dict> 
    <key>BuildPhases</key> 
    <array> 
     <dict> 
      <key>Class</key> 
      <string>ShellScript</string> 
      <key>ShellPath</key> 
      <string>/bin/sh</string> 
      <key>ShellScript</key> 
      <string>osascript -e 'tell app "iPhone Simulator" to quit'</string> 
     </dict> 
    </array> 
</dict> 

また、あなたはあなたのビルドフェーズにこの「スクリプトの実行」を追加することができます。あなたが興味を持っている場合は

osascript -e 'tell app "iPhone Simulator" to quit' 

、あなたは自動インクリメントにあなたのビルド番号例えばを別のスクリプトを追加することができます;

<key>Targets</key> 
<array> 
<dict> 
    <key>BuildPhases</key> 
    <array> 
     <dict> 
      <key>Class</key> 
      <string>ShellScript</string> 
      <key>ShellPath</key> 
      <string>/bin/sh</string> 
      <key>ShellScript</key> 
      <string> 
       buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
       buildNumber=`echo $buildNumber +1|bc` 
       /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 
      </string> 
     </dict> 
     <dict> 
      <key>Class</key> 
      <string>ShellScript</string> 
      <key>ShellPath</key> 
      <string>/bin/sh</string> 
      <key>ShellScript</key> 
      <string>osascript -e 'tell app "iPhone Simulator" to quit'</string> 
     </dict> 
    </array> 
</dict> 

Xcodeのは、デフォルト設定としてこれらの単純なヘルパーを持っていた場合、それは素晴らしいことだが、少なくとも、私たちは手で自分自身を追加することができます。

関連する問題