在Xcode中停止应用程序时,是否有可能使iOS模拟器关闭/退出? 我没有在Xcode或模拟器中找到相应的设置。 如果存在这样的设置,它将有助于加快开发进程。
在Xcode中停止应用程序时,是否有可能使iOS模拟器关闭/退出? 我没有在Xcode或模拟器中找到相应的设置。 如果存在这样的设置,它将有助于加快开发进程。
当您的构建停止时,要关闭模拟器,您需要编译一个可执行文件,并包含以下内容。
#!/bin/sh
osascript -e 'tell app "iPhone Simulator" to quit'
- (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");
}
#!/bin/sh
osascript -e 'tell app "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>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默认设置中有这些简单的辅助工具,那就太好了,但至少我们可以手动添加它们。
我在xCode 5.1中遇到了同样的问题,重新启动我的Mac解决了它。
至于“为什么这会加速开发”,在我的情况下,Xcode不会让我再次运行,直到我退出模拟器,这很繁琐。
我不明白它如何加快开发时间,但是当使用模拟器时,如果你想完成操作,只需按下 cmd+q 键,它将退出模拟器并自动停止在 Xcode 中。
你可以在Xcode中停止调试会话并重新启动它,甚至只需再次按下cmd-r,新版本就可以在模拟器中正常运行。无需退出并重新启动模拟器。