Cierre automáticamente el Simulador de iOS cuando la aplicación se detiene en Xcode

¿Es posible cerrar / cerrar el simulador de iOS cada vez que se detiene una aplicación en Xcode? No pude encontrar una configuration en Xcode o en Simulator para hacerlo. Ayudaría a acelerar el process de desarrollo si existe.

Para eliminar el simulador cuando se detiene su compilation, necesitará comstackr un file ejecutable que incluya lo siguiente

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

Guarde este file y luego abra la sección de comportamientos de las preferences de Xcode, en la sección completa de la ejecución, agregue su file de script a la sección de ejecución. Espero que esto funcione para usted, sin embargo, este método parece ser un poco irregular y desafortunadamente es la mejor manera que he podido encontrar. ¡Buena suerte! introduzca la descripción de la imagen aquí

Es una lástima que no estés haciendo una aplicación OS X porque hacerlo es extremadamente fácil. Esta parte es irrelevante, pero quién sabe, ¡puede que pueda usarlo en el futuro!

 - (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"); } 

No veo cómo acelerará tu time de devoluciones, sin embargo, cuando uses el simulador y quieres terminar, simplemente presiona cmd + q y saldrá del simulador y lo detendrá automáticamente en Xcode.

Puede detener la session de debugging desde Xcode y reiniciarla, o incluso simplemente hacer clic en cmd-r nuevamente desde Xcode y la nueva versión se ejecutará correctamente en el simulador. No es necesario salir y reiniciar el simulador.

Estaba teniendo el mismo problema en xCode 5.1. Reiniciar mi Mac lo solucionó.

En cuanto a "¿Por qué esto acelera el desarrollo?", En mi caso, Xcode no me permitió volver a ejecutar hasta que salí del emulador, lo cual fue tedioso.

Puede agregar una fase de compilation 'ejecutar script' a un nuevo proyecto (a través de templates de proyecto Xcode), agregando esto a su TemplateInfo.plist;

 <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> 

Alternativamente, puede agregar este 'Run Script' a sus Fases de compilation;

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

En caso de que esté interesado, puede agregar otro script para boost automáticamente su número de compilation, por ejemplo;

 <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> 

Sería genial si Xcode tuviera estos ayudantes simples como configuration pnetworkingeterminada, pero al less podemos agregarlos a mano nosotros mismos.