[英]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.