[英]Automatically close iOS Simulator when application is stopped in Xcode
是否可以在 Xcode 中停止应用程序时关闭/退出 iOS 模拟器? 我无法在 Xcode 或模拟器中找到设置。 如果存在,它将有助于加快开发过程。
要在构建停止时终止模拟器,您需要编译一个包含以下内容的可执行文件
#!/bin/sh
osascript -e 'tell app "iPhone Simulator" to quit'
保存此文件,然后打开 Xcode 首选项的行为部分,在运行完成部分将您的脚本文件添加到运行部分。 希望这对你有用,但是这种方法似乎有点参差不齐,不幸的是我能想出的最好方法! 祝你好运!
您没有制作 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");
}
我在 xCode 5.1 中遇到了同样的问题。 重新启动我的 Mac 解决了它。
至于“为什么这会加快开发速度”,在我的情况下,Xcode 不会让我再次运行,直到我退出模拟器,这很乏味。
您可以将“运行脚本”构建阶段添加到新项目(通过 Xcode 项目模板),方法是将其添加到您的 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>
或者,您可以将此“运行脚本”添加到您的构建阶段;
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 12.3中,只需创建simulator.sh(Shell Script),然后填写此代码
#!/bin/sh
osascript -e 'tell app "Simulator" to quit'
之后,打开 XCode > Preferences > Behaviors 并设置为您的目标文件
我不知道它会如何加快您的开发时间,但是当使用模拟器并且您想完成时,只需按 cmd+q 即可退出模拟器并在 Xcode 中自动停止它。
您可以从 Xcode 停止调试会话并重新启动它,或者甚至只需从 Xcode 再次点击 cmd-r,新版本将在模拟器中正常运行。 无需退出并重新启动模拟器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.